<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="replicapool_v1beta1.html">Replica Pool API</a> . <a href="replicapool_v1beta1.pools.html">pools</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(projectName, zone, poolName, body)</a></code></p>
<p class="firstline">Deletes a replica pool.</p>
<p class="toc_element">
  <code><a href="#get">get(projectName, zone, poolName)</a></code></p>
<p class="firstline">Gets information about a single replica pool.</p>
<p class="toc_element">
  <code><a href="#insert">insert(projectName, zone, body)</a></code></p>
<p class="firstline">Inserts a new replica pool.</p>
<p class="toc_element">
  <code><a href="#list">list(projectName, zone, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">List all replica pools.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#resize">resize(projectName, zone, poolName, numReplicas=None)</a></code></p>
<p class="firstline">Resize a pool. This is an asynchronous operation, and multiple overlapping resize requests can be made. Replica Pools will use the information from the last resize request.</p>
<p class="toc_element">
  <code><a href="#updatetemplate">updatetemplate(projectName, zone, poolName, body)</a></code></p>
<p class="firstline">Update the template used by the pool.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(projectName, zone, poolName, body)</code>
  <pre>Deletes a replica pool.

Args:
  projectName: string, The project ID for this replica pool. (required)
  zone: string, The zone for this replica pool. (required)
  poolName: string, The name of the replica pool for this request. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
    "abandonInstances": [ # If there are instances you would like to keep, you can specify them here. These instances won't be deleted, but the associated replica objects will be removed.
      "A String",
    ],
  }

</pre>
</div>

<div class="method">
    <code class="details" id="get">get(projectName, zone, poolName)</code>
  <pre>Gets information about a single replica pool.

Args:
  projectName: string, The project ID for this replica pool. (required)
  zone: string, The zone for this replica pool. (required)
  poolName: string, The name of the replica pool for this request. (required)

Returns:
  An object of the form:

    {
      "autoRestart": True or False, # Whether replicas in this pool should be restarted if they experience a failure. The default value is true.
      "resourceViews": [ # The list of resource views that should be updated with all the replicas that are managed by this pool.
        "A String",
      ],
      "description": "A String", # An optional description of the replica pool.
      "labels": [ # A list of labels to attach to this replica pool and all created virtual machines in this replica pool.
        { # A label to apply to this replica pool.
          "value": "A String", # The value of this label.
          "key": "A String", # The key for this label.
        },
      ],
      "targetPool": "A String", # Deprecated, please use target_pools instead.
      "baseInstanceName": "A String", # The base instance name to use for the replicas in this pool. This must match the regex [a-z]([-a-z0-9]*[a-z0-9])?. If specified, the instances in this replica pool will be named in the format <base-instance-name>-<ID>. The <ID> postfix will be a four character alphanumeric identifier generated by the service.
          #
          # If this is not specified by the user, a random base instance name is generated by the service.
      "numReplicas": 42, # Deprecated! Use initial_num_replicas instead.
      "template": { # The template used for creating replicas in the pool. # The template to use when creating replicas in this pool. This template is used during initial instance creation of the pool, when growing the pool in size, or when a replica restarts.
        "action": { # An action that gets executed during initialization of the replicas. # An action to run during initialization of your replicas. An action is run as shell commands which are executed one after the other in the same bash shell, so any state established by one command is inherited by later commands.
          "timeoutMilliSeconds": 42, # If an action's commands on a particular replica do not finish in the specified timeoutMilliSeconds, the replica is considered to be in a FAILING state. No efforts are made to stop any processes that were spawned or created as the result of running the action's commands. The default is the max allowed value, 1 hour (i.e. 3600000 milliseconds).
          "commands": [ # A list of commands to run, one per line. If any command fails, the whole action is considered a failure and no further actions are run. This also marks the virtual machine or replica as a failure.
            "A String",
          ],
          "envVariables": [ # A list of environment variables to use for the commands in this action.
            { # An environment variable to set for an action.
              "hidden": True or False, # Deprecated, do not use.
              "name": "A String", # The name of the environment variable.
              "value": "A String", # The value of the variable.
            },
          ],
        },
        "healthChecks": [ # A list of HTTP Health Checks to configure for this replica pool and all virtual machines in this replica pool.
          {
            "description": "A String", # The description for this health check.
            "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
            "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
            "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
            "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
            "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
            "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
            "port": 42, # The TCP port for the health check requests.
            "name": "A String", # The name of this health check.
          },
        ],
        "version": "A String", # A free-form string describing the version of this template. You can provide any versioning string you would like. For example, version1 or template-v1.
        "vmParams": { # Parameters for creating a Compute Engine Instance resource. Most fields are identical to the corresponding Compute Engine resource. # The virtual machine parameters to use for creating replicas. You can define settings such as the machine type and the image of replicas in this pool. This is required if replica type is SMART_VM.
          "disksToCreate": [ # A list of Disk resources to create and attach to each Replica in the Pool. Currently, you can only define one disk and it must be a root persistent disk. Note that Replica Pool will create a root persistent disk for each replica.
            { # A Persistent Disk resource that will be created and attached to each Replica in the Pool. Each Replica will have a unique persistent disk that is created and attached to that Replica in READ_WRITE mode.
              "initializeParams": { # Initialization parameters for creating a new disk. # Create the new disk using these parameters. The name of the disk will be <instance_name>-<four_random_charactersgt;.
                "diskSizeGb": "A String", # The size of the created disk in gigabytes.
                "sourceImage": "A String", # The name or fully-qualified URL of a source image to use to create this disk. If you provide a name of the source image, Replica Pool will look for an image with that name in your project. If you are specifying an image provided by Compute Engine, you will need to provide the full URL with the correct project, such as:
                    # http://www.googleapis.com/compute/v1/projects/debian-cloud/ global/images/debian-wheezy-7-vYYYYMMDD
                "diskType": "A String", # Name of the disk type resource describing which disk type to use to create the disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard'
              },
              "boot": True or False, # If true, indicates that this is the root persistent disk.
              "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
                "deviceName": "A String", # The device name of this disk.
                "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
              },
              "autoDelete": True or False, # If true, then this disk will be deleted when the instance is deleted. The default value is true.
            },
          ],
          "canIpForward": True or False, # Enables IP Forwarding, which allows this instance to receive packets destined for a different IP address, and send packets with a different source IP. See IP Forwarding for more information.
          "description": "A String", # An optional textual description of the instance.
          "tags": { # A Compute Engine Instance tag, identical to the tags on the corresponding Compute Engine Instance resource. # A list of tags to apply to the Google Compute Engine instance to identify resources.
            "items": [ # Items contained in this tag.
              "A String",
            ],
            "fingerPrint": "A String", # The fingerprint of the tag. Required for updating the list of tags.
          },
          "onHostMaintenance": "A String",
          "disksToAttach": [ # A list of existing Persistent Disk resources to attach to each replica in the pool. Each disk will be attached in read-only mode to every replica.
            { # A pre-existing persistent disk that will be attached to every Replica in the Pool in READ_ONLY mode.
              "source": "A String", # The name of the Persistent Disk resource. The Persistent Disk resource must be in the same zone as the Pool.
              "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
                "deviceName": "A String", # The device name of this disk.
                "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
              },
            },
          ],
          "machineType": "A String", # The machine type for this instance. The resource name (e.g. n1-standard-1).
          "baseInstanceName": "A String", # Deprecated. Please use baseInstanceName instead.
          "serviceAccounts": [ # A list of Service Accounts to enable for this instance.
            { # A Compute Engine service account, identical to the Compute Engine resource.
              "scopes": [ # The list of OAuth2 scopes to obtain for the service account, for example: https://www.googleapis.com/auth/devstorage.full_control
                "A String",
              ],
              "email": "A String", # The service account email address, for example: 123845678986@project.gserviceaccount.com
            },
          ],
          "networkInterfaces": [ # A list of network interfaces for the instance. Currently only one interface is supported by Google Compute Engine, ONE_TO_ONE_NAT.
            { # A Compute Engine NetworkInterface resource. Identical to the NetworkInterface on the corresponding Compute Engine resource.
              "accessConfigs": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services.
                { # A Compute Engine network accessConfig. Identical to the accessConfig on corresponding Compute Engine resource.
                  "type": "A String", # Type of this access configuration file. Currently only ONE_TO_ONE_NAT is supported.
                  "name": "A String", # Name of this access configuration.
                  "natIp": "A String", # An external IP address associated with this instance.
                },
              ],
              "networkIp": "A String", # An optional IPV4 internal network address to assign to the instance for this network interface.
              "network": "A String", # Name the Network resource to which this interface applies.
            },
          ],
          "metadata": { # A Compute Engine metadata entry. Identical to the metadata on the corresponding Compute Engine resource. # The metadata key/value pairs assigned to this instance.
            "items": [ # A list of metadata items.
              { # A Compute Engine metadata item, defined as a key:value pair. Identical to the metadata on the corresponding Compute Engine resource.
                "value": "A String", # A metadata value.
                "key": "A String", # A metadata key.
              },
            ],
            "fingerPrint": "A String", # The fingerprint of the metadata. Required for updating the metadata entries for this instance.
          },
        },
      },
      "healthChecks": [ # Deprecated. Please use template[].healthChecks instead.
        {
          "description": "A String", # The description for this health check.
          "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
          "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
          "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
          "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
          "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
          "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
          "port": 42, # The TCP port for the health check requests.
          "name": "A String", # The name of this health check.
        },
      ],
      "currentNumReplicas": 42, # [Output Only] The current number of replicas in the pool.
      "initialNumReplicas": 42, # The initial number of replicas this pool should have. You must provide a value greater than or equal to 0.
      "type": "A String", # Deprecated! Do not set.
      "targetPools": [ # A list of target pools to update with the replicas that are managed by this pool. If specified, the replicas in this replica pool will be added to the specified target pools for load balancing purposes. The replica pool must live in the same region as the specified target pools. These values must be the target pool resource names, and not fully qualified URLs.
        "A String",
      ],
      "selfLink": "A String", # [Output Only] A self-link to the replica pool.
      "name": "A String", # The name of the replica pool. Must follow the regex [a-z]([-a-z0-9]*[a-z0-9])? and be 1-28 characters long.
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(projectName, zone, body)</code>
  <pre>Inserts a new replica pool.

Args:
  projectName: string, The project ID for this replica pool. (required)
  zone: string, The zone for this replica pool. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
    "autoRestart": True or False, # Whether replicas in this pool should be restarted if they experience a failure. The default value is true.
    "resourceViews": [ # The list of resource views that should be updated with all the replicas that are managed by this pool.
      "A String",
    ],
    "description": "A String", # An optional description of the replica pool.
    "labels": [ # A list of labels to attach to this replica pool and all created virtual machines in this replica pool.
      { # A label to apply to this replica pool.
        "value": "A String", # The value of this label.
        "key": "A String", # The key for this label.
      },
    ],
    "targetPool": "A String", # Deprecated, please use target_pools instead.
    "baseInstanceName": "A String", # The base instance name to use for the replicas in this pool. This must match the regex [a-z]([-a-z0-9]*[a-z0-9])?. If specified, the instances in this replica pool will be named in the format <base-instance-name>-<ID>. The <ID> postfix will be a four character alphanumeric identifier generated by the service.
        # 
        # If this is not specified by the user, a random base instance name is generated by the service.
    "numReplicas": 42, # Deprecated! Use initial_num_replicas instead.
    "template": { # The template used for creating replicas in the pool. # The template to use when creating replicas in this pool. This template is used during initial instance creation of the pool, when growing the pool in size, or when a replica restarts.
      "action": { # An action that gets executed during initialization of the replicas. # An action to run during initialization of your replicas. An action is run as shell commands which are executed one after the other in the same bash shell, so any state established by one command is inherited by later commands.
        "timeoutMilliSeconds": 42, # If an action's commands on a particular replica do not finish in the specified timeoutMilliSeconds, the replica is considered to be in a FAILING state. No efforts are made to stop any processes that were spawned or created as the result of running the action's commands. The default is the max allowed value, 1 hour (i.e. 3600000 milliseconds).
        "commands": [ # A list of commands to run, one per line. If any command fails, the whole action is considered a failure and no further actions are run. This also marks the virtual machine or replica as a failure.
          "A String",
        ],
        "envVariables": [ # A list of environment variables to use for the commands in this action.
          { # An environment variable to set for an action.
            "hidden": True or False, # Deprecated, do not use.
            "name": "A String", # The name of the environment variable.
            "value": "A String", # The value of the variable.
          },
        ],
      },
      "healthChecks": [ # A list of HTTP Health Checks to configure for this replica pool and all virtual machines in this replica pool.
        {
          "description": "A String", # The description for this health check.
          "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
          "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
          "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
          "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
          "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
          "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
          "port": 42, # The TCP port for the health check requests.
          "name": "A String", # The name of this health check.
        },
      ],
      "version": "A String", # A free-form string describing the version of this template. You can provide any versioning string you would like. For example, version1 or template-v1.
      "vmParams": { # Parameters for creating a Compute Engine Instance resource. Most fields are identical to the corresponding Compute Engine resource. # The virtual machine parameters to use for creating replicas. You can define settings such as the machine type and the image of replicas in this pool. This is required if replica type is SMART_VM.
        "disksToCreate": [ # A list of Disk resources to create and attach to each Replica in the Pool. Currently, you can only define one disk and it must be a root persistent disk. Note that Replica Pool will create a root persistent disk for each replica.
          { # A Persistent Disk resource that will be created and attached to each Replica in the Pool. Each Replica will have a unique persistent disk that is created and attached to that Replica in READ_WRITE mode.
            "initializeParams": { # Initialization parameters for creating a new disk. # Create the new disk using these parameters. The name of the disk will be <instance_name>-<four_random_charactersgt;.
              "diskSizeGb": "A String", # The size of the created disk in gigabytes.
              "sourceImage": "A String", # The name or fully-qualified URL of a source image to use to create this disk. If you provide a name of the source image, Replica Pool will look for an image with that name in your project. If you are specifying an image provided by Compute Engine, you will need to provide the full URL with the correct project, such as:
                  # http://www.googleapis.com/compute/v1/projects/debian-cloud/ global/images/debian-wheezy-7-vYYYYMMDD
              "diskType": "A String", # Name of the disk type resource describing which disk type to use to create the disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard'
            },
            "boot": True or False, # If true, indicates that this is the root persistent disk.
            "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
              "deviceName": "A String", # The device name of this disk.
              "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
            },
            "autoDelete": True or False, # If true, then this disk will be deleted when the instance is deleted. The default value is true.
          },
        ],
        "canIpForward": True or False, # Enables IP Forwarding, which allows this instance to receive packets destined for a different IP address, and send packets with a different source IP. See IP Forwarding for more information.
        "description": "A String", # An optional textual description of the instance.
        "tags": { # A Compute Engine Instance tag, identical to the tags on the corresponding Compute Engine Instance resource. # A list of tags to apply to the Google Compute Engine instance to identify resources.
          "items": [ # Items contained in this tag.
            "A String",
          ],
          "fingerPrint": "A String", # The fingerprint of the tag. Required for updating the list of tags.
        },
        "onHostMaintenance": "A String",
        "disksToAttach": [ # A list of existing Persistent Disk resources to attach to each replica in the pool. Each disk will be attached in read-only mode to every replica.
          { # A pre-existing persistent disk that will be attached to every Replica in the Pool in READ_ONLY mode.
            "source": "A String", # The name of the Persistent Disk resource. The Persistent Disk resource must be in the same zone as the Pool.
            "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
              "deviceName": "A String", # The device name of this disk.
              "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
            },
          },
        ],
        "machineType": "A String", # The machine type for this instance. The resource name (e.g. n1-standard-1).
        "baseInstanceName": "A String", # Deprecated. Please use baseInstanceName instead.
        "serviceAccounts": [ # A list of Service Accounts to enable for this instance.
          { # A Compute Engine service account, identical to the Compute Engine resource.
            "scopes": [ # The list of OAuth2 scopes to obtain for the service account, for example: https://www.googleapis.com/auth/devstorage.full_control
              "A String",
            ],
            "email": "A String", # The service account email address, for example: 123845678986@project.gserviceaccount.com
          },
        ],
        "networkInterfaces": [ # A list of network interfaces for the instance. Currently only one interface is supported by Google Compute Engine, ONE_TO_ONE_NAT.
          { # A Compute Engine NetworkInterface resource. Identical to the NetworkInterface on the corresponding Compute Engine resource.
            "accessConfigs": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services.
              { # A Compute Engine network accessConfig. Identical to the accessConfig on corresponding Compute Engine resource.
                "type": "A String", # Type of this access configuration file. Currently only ONE_TO_ONE_NAT is supported.
                "name": "A String", # Name of this access configuration.
                "natIp": "A String", # An external IP address associated with this instance.
              },
            ],
            "networkIp": "A String", # An optional IPV4 internal network address to assign to the instance for this network interface.
            "network": "A String", # Name the Network resource to which this interface applies.
          },
        ],
        "metadata": { # A Compute Engine metadata entry. Identical to the metadata on the corresponding Compute Engine resource. # The metadata key/value pairs assigned to this instance.
          "items": [ # A list of metadata items.
            { # A Compute Engine metadata item, defined as a key:value pair. Identical to the metadata on the corresponding Compute Engine resource.
              "value": "A String", # A metadata value.
              "key": "A String", # A metadata key.
            },
          ],
          "fingerPrint": "A String", # The fingerprint of the metadata. Required for updating the metadata entries for this instance.
        },
      },
    },
    "healthChecks": [ # Deprecated. Please use template[].healthChecks instead.
      {
        "description": "A String", # The description for this health check.
        "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
        "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
        "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
        "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
        "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
        "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
        "port": 42, # The TCP port for the health check requests.
        "name": "A String", # The name of this health check.
      },
    ],
    "currentNumReplicas": 42, # [Output Only] The current number of replicas in the pool.
    "initialNumReplicas": 42, # The initial number of replicas this pool should have. You must provide a value greater than or equal to 0.
    "type": "A String", # Deprecated! Do not set.
    "targetPools": [ # A list of target pools to update with the replicas that are managed by this pool. If specified, the replicas in this replica pool will be added to the specified target pools for load balancing purposes. The replica pool must live in the same region as the specified target pools. These values must be the target pool resource names, and not fully qualified URLs.
      "A String",
    ],
    "selfLink": "A String", # [Output Only] A self-link to the replica pool.
    "name": "A String", # The name of the replica pool. Must follow the regex [a-z]([-a-z0-9]*[a-z0-9])? and be 1-28 characters long.
  }


Returns:
  An object of the form:

    {
      "autoRestart": True or False, # Whether replicas in this pool should be restarted if they experience a failure. The default value is true.
      "resourceViews": [ # The list of resource views that should be updated with all the replicas that are managed by this pool.
        "A String",
      ],
      "description": "A String", # An optional description of the replica pool.
      "labels": [ # A list of labels to attach to this replica pool and all created virtual machines in this replica pool.
        { # A label to apply to this replica pool.
          "value": "A String", # The value of this label.
          "key": "A String", # The key for this label.
        },
      ],
      "targetPool": "A String", # Deprecated, please use target_pools instead.
      "baseInstanceName": "A String", # The base instance name to use for the replicas in this pool. This must match the regex [a-z]([-a-z0-9]*[a-z0-9])?. If specified, the instances in this replica pool will be named in the format <base-instance-name>-<ID>. The <ID> postfix will be a four character alphanumeric identifier generated by the service.
          #
          # If this is not specified by the user, a random base instance name is generated by the service.
      "numReplicas": 42, # Deprecated! Use initial_num_replicas instead.
      "template": { # The template used for creating replicas in the pool. # The template to use when creating replicas in this pool. This template is used during initial instance creation of the pool, when growing the pool in size, or when a replica restarts.
        "action": { # An action that gets executed during initialization of the replicas. # An action to run during initialization of your replicas. An action is run as shell commands which are executed one after the other in the same bash shell, so any state established by one command is inherited by later commands.
          "timeoutMilliSeconds": 42, # If an action's commands on a particular replica do not finish in the specified timeoutMilliSeconds, the replica is considered to be in a FAILING state. No efforts are made to stop any processes that were spawned or created as the result of running the action's commands. The default is the max allowed value, 1 hour (i.e. 3600000 milliseconds).
          "commands": [ # A list of commands to run, one per line. If any command fails, the whole action is considered a failure and no further actions are run. This also marks the virtual machine or replica as a failure.
            "A String",
          ],
          "envVariables": [ # A list of environment variables to use for the commands in this action.
            { # An environment variable to set for an action.
              "hidden": True or False, # Deprecated, do not use.
              "name": "A String", # The name of the environment variable.
              "value": "A String", # The value of the variable.
            },
          ],
        },
        "healthChecks": [ # A list of HTTP Health Checks to configure for this replica pool and all virtual machines in this replica pool.
          {
            "description": "A String", # The description for this health check.
            "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
            "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
            "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
            "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
            "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
            "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
            "port": 42, # The TCP port for the health check requests.
            "name": "A String", # The name of this health check.
          },
        ],
        "version": "A String", # A free-form string describing the version of this template. You can provide any versioning string you would like. For example, version1 or template-v1.
        "vmParams": { # Parameters for creating a Compute Engine Instance resource. Most fields are identical to the corresponding Compute Engine resource. # The virtual machine parameters to use for creating replicas. You can define settings such as the machine type and the image of replicas in this pool. This is required if replica type is SMART_VM.
          "disksToCreate": [ # A list of Disk resources to create and attach to each Replica in the Pool. Currently, you can only define one disk and it must be a root persistent disk. Note that Replica Pool will create a root persistent disk for each replica.
            { # A Persistent Disk resource that will be created and attached to each Replica in the Pool. Each Replica will have a unique persistent disk that is created and attached to that Replica in READ_WRITE mode.
              "initializeParams": { # Initialization parameters for creating a new disk. # Create the new disk using these parameters. The name of the disk will be <instance_name>-<four_random_charactersgt;.
                "diskSizeGb": "A String", # The size of the created disk in gigabytes.
                "sourceImage": "A String", # The name or fully-qualified URL of a source image to use to create this disk. If you provide a name of the source image, Replica Pool will look for an image with that name in your project. If you are specifying an image provided by Compute Engine, you will need to provide the full URL with the correct project, such as:
                    # http://www.googleapis.com/compute/v1/projects/debian-cloud/ global/images/debian-wheezy-7-vYYYYMMDD
                "diskType": "A String", # Name of the disk type resource describing which disk type to use to create the disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard'
              },
              "boot": True or False, # If true, indicates that this is the root persistent disk.
              "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
                "deviceName": "A String", # The device name of this disk.
                "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
              },
              "autoDelete": True or False, # If true, then this disk will be deleted when the instance is deleted. The default value is true.
            },
          ],
          "canIpForward": True or False, # Enables IP Forwarding, which allows this instance to receive packets destined for a different IP address, and send packets with a different source IP. See IP Forwarding for more information.
          "description": "A String", # An optional textual description of the instance.
          "tags": { # A Compute Engine Instance tag, identical to the tags on the corresponding Compute Engine Instance resource. # A list of tags to apply to the Google Compute Engine instance to identify resources.
            "items": [ # Items contained in this tag.
              "A String",
            ],
            "fingerPrint": "A String", # The fingerprint of the tag. Required for updating the list of tags.
          },
          "onHostMaintenance": "A String",
          "disksToAttach": [ # A list of existing Persistent Disk resources to attach to each replica in the pool. Each disk will be attached in read-only mode to every replica.
            { # A pre-existing persistent disk that will be attached to every Replica in the Pool in READ_ONLY mode.
              "source": "A String", # The name of the Persistent Disk resource. The Persistent Disk resource must be in the same zone as the Pool.
              "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
                "deviceName": "A String", # The device name of this disk.
                "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
              },
            },
          ],
          "machineType": "A String", # The machine type for this instance. The resource name (e.g. n1-standard-1).
          "baseInstanceName": "A String", # Deprecated. Please use baseInstanceName instead.
          "serviceAccounts": [ # A list of Service Accounts to enable for this instance.
            { # A Compute Engine service account, identical to the Compute Engine resource.
              "scopes": [ # The list of OAuth2 scopes to obtain for the service account, for example: https://www.googleapis.com/auth/devstorage.full_control
                "A String",
              ],
              "email": "A String", # The service account email address, for example: 123845678986@project.gserviceaccount.com
            },
          ],
          "networkInterfaces": [ # A list of network interfaces for the instance. Currently only one interface is supported by Google Compute Engine, ONE_TO_ONE_NAT.
            { # A Compute Engine NetworkInterface resource. Identical to the NetworkInterface on the corresponding Compute Engine resource.
              "accessConfigs": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services.
                { # A Compute Engine network accessConfig. Identical to the accessConfig on corresponding Compute Engine resource.
                  "type": "A String", # Type of this access configuration file. Currently only ONE_TO_ONE_NAT is supported.
                  "name": "A String", # Name of this access configuration.
                  "natIp": "A String", # An external IP address associated with this instance.
                },
              ],
              "networkIp": "A String", # An optional IPV4 internal network address to assign to the instance for this network interface.
              "network": "A String", # Name the Network resource to which this interface applies.
            },
          ],
          "metadata": { # A Compute Engine metadata entry. Identical to the metadata on the corresponding Compute Engine resource. # The metadata key/value pairs assigned to this instance.
            "items": [ # A list of metadata items.
              { # A Compute Engine metadata item, defined as a key:value pair. Identical to the metadata on the corresponding Compute Engine resource.
                "value": "A String", # A metadata value.
                "key": "A String", # A metadata key.
              },
            ],
            "fingerPrint": "A String", # The fingerprint of the metadata. Required for updating the metadata entries for this instance.
          },
        },
      },
      "healthChecks": [ # Deprecated. Please use template[].healthChecks instead.
        {
          "description": "A String", # The description for this health check.
          "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
          "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
          "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
          "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
          "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
          "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
          "port": 42, # The TCP port for the health check requests.
          "name": "A String", # The name of this health check.
        },
      ],
      "currentNumReplicas": 42, # [Output Only] The current number of replicas in the pool.
      "initialNumReplicas": 42, # The initial number of replicas this pool should have. You must provide a value greater than or equal to 0.
      "type": "A String", # Deprecated! Do not set.
      "targetPools": [ # A list of target pools to update with the replicas that are managed by this pool. If specified, the replicas in this replica pool will be added to the specified target pools for load balancing purposes. The replica pool must live in the same region as the specified target pools. These values must be the target pool resource names, and not fully qualified URLs.
        "A String",
      ],
      "selfLink": "A String", # [Output Only] A self-link to the replica pool.
      "name": "A String", # The name of the replica pool. Must follow the regex [a-z]([-a-z0-9]*[a-z0-9])? and be 1-28 characters long.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(projectName, zone, pageToken=None, maxResults=None)</code>
  <pre>List all replica pools.

Args:
  projectName: string, The project ID for this request. (required)
  zone: string, The zone for this replica pool. (required)
  pageToken: string, Set this to the nextPageToken value returned by a previous list request to obtain the next page of results from the previous list request.
  maxResults: integer, Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)

Returns:
  An object of the form:

    {
    "nextPageToken": "A String",
    "resources": [
      {
          "autoRestart": True or False, # Whether replicas in this pool should be restarted if they experience a failure. The default value is true.
          "resourceViews": [ # The list of resource views that should be updated with all the replicas that are managed by this pool.
            "A String",
          ],
          "description": "A String", # An optional description of the replica pool.
          "labels": [ # A list of labels to attach to this replica pool and all created virtual machines in this replica pool.
            { # A label to apply to this replica pool.
              "value": "A String", # The value of this label.
              "key": "A String", # The key for this label.
            },
          ],
          "targetPool": "A String", # Deprecated, please use target_pools instead.
          "baseInstanceName": "A String", # The base instance name to use for the replicas in this pool. This must match the regex [a-z]([-a-z0-9]*[a-z0-9])?. If specified, the instances in this replica pool will be named in the format <base-instance-name>-<ID>. The <ID> postfix will be a four character alphanumeric identifier generated by the service.
              #
              # If this is not specified by the user, a random base instance name is generated by the service.
          "numReplicas": 42, # Deprecated! Use initial_num_replicas instead.
          "template": { # The template used for creating replicas in the pool. # The template to use when creating replicas in this pool. This template is used during initial instance creation of the pool, when growing the pool in size, or when a replica restarts.
            "action": { # An action that gets executed during initialization of the replicas. # An action to run during initialization of your replicas. An action is run as shell commands which are executed one after the other in the same bash shell, so any state established by one command is inherited by later commands.
              "timeoutMilliSeconds": 42, # If an action's commands on a particular replica do not finish in the specified timeoutMilliSeconds, the replica is considered to be in a FAILING state. No efforts are made to stop any processes that were spawned or created as the result of running the action's commands. The default is the max allowed value, 1 hour (i.e. 3600000 milliseconds).
              "commands": [ # A list of commands to run, one per line. If any command fails, the whole action is considered a failure and no further actions are run. This also marks the virtual machine or replica as a failure.
                "A String",
              ],
              "envVariables": [ # A list of environment variables to use for the commands in this action.
                { # An environment variable to set for an action.
                  "hidden": True or False, # Deprecated, do not use.
                  "name": "A String", # The name of the environment variable.
                  "value": "A String", # The value of the variable.
                },
              ],
            },
            "healthChecks": [ # A list of HTTP Health Checks to configure for this replica pool and all virtual machines in this replica pool.
              {
                "description": "A String", # The description for this health check.
                "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
                "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
                "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
                "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
                "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
                "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
                "port": 42, # The TCP port for the health check requests.
                "name": "A String", # The name of this health check.
              },
            ],
            "version": "A String", # A free-form string describing the version of this template. You can provide any versioning string you would like. For example, version1 or template-v1.
            "vmParams": { # Parameters for creating a Compute Engine Instance resource. Most fields are identical to the corresponding Compute Engine resource. # The virtual machine parameters to use for creating replicas. You can define settings such as the machine type and the image of replicas in this pool. This is required if replica type is SMART_VM.
              "disksToCreate": [ # A list of Disk resources to create and attach to each Replica in the Pool. Currently, you can only define one disk and it must be a root persistent disk. Note that Replica Pool will create a root persistent disk for each replica.
                { # A Persistent Disk resource that will be created and attached to each Replica in the Pool. Each Replica will have a unique persistent disk that is created and attached to that Replica in READ_WRITE mode.
                  "initializeParams": { # Initialization parameters for creating a new disk. # Create the new disk using these parameters. The name of the disk will be <instance_name>-<four_random_charactersgt;.
                    "diskSizeGb": "A String", # The size of the created disk in gigabytes.
                    "sourceImage": "A String", # The name or fully-qualified URL of a source image to use to create this disk. If you provide a name of the source image, Replica Pool will look for an image with that name in your project. If you are specifying an image provided by Compute Engine, you will need to provide the full URL with the correct project, such as:
                        # http://www.googleapis.com/compute/v1/projects/debian-cloud/ global/images/debian-wheezy-7-vYYYYMMDD
                    "diskType": "A String", # Name of the disk type resource describing which disk type to use to create the disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard'
                  },
                  "boot": True or False, # If true, indicates that this is the root persistent disk.
                  "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
                    "deviceName": "A String", # The device name of this disk.
                    "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
                  },
                  "autoDelete": True or False, # If true, then this disk will be deleted when the instance is deleted. The default value is true.
                },
              ],
              "canIpForward": True or False, # Enables IP Forwarding, which allows this instance to receive packets destined for a different IP address, and send packets with a different source IP. See IP Forwarding for more information.
              "description": "A String", # An optional textual description of the instance.
              "tags": { # A Compute Engine Instance tag, identical to the tags on the corresponding Compute Engine Instance resource. # A list of tags to apply to the Google Compute Engine instance to identify resources.
                "items": [ # Items contained in this tag.
                  "A String",
                ],
                "fingerPrint": "A String", # The fingerprint of the tag. Required for updating the list of tags.
              },
              "onHostMaintenance": "A String",
              "disksToAttach": [ # A list of existing Persistent Disk resources to attach to each replica in the pool. Each disk will be attached in read-only mode to every replica.
                { # A pre-existing persistent disk that will be attached to every Replica in the Pool in READ_ONLY mode.
                  "source": "A String", # The name of the Persistent Disk resource. The Persistent Disk resource must be in the same zone as the Pool.
                  "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
                    "deviceName": "A String", # The device name of this disk.
                    "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
                  },
                },
              ],
              "machineType": "A String", # The machine type for this instance. The resource name (e.g. n1-standard-1).
              "baseInstanceName": "A String", # Deprecated. Please use baseInstanceName instead.
              "serviceAccounts": [ # A list of Service Accounts to enable for this instance.
                { # A Compute Engine service account, identical to the Compute Engine resource.
                  "scopes": [ # The list of OAuth2 scopes to obtain for the service account, for example: https://www.googleapis.com/auth/devstorage.full_control
                    "A String",
                  ],
                  "email": "A String", # The service account email address, for example: 123845678986@project.gserviceaccount.com
                },
              ],
              "networkInterfaces": [ # A list of network interfaces for the instance. Currently only one interface is supported by Google Compute Engine, ONE_TO_ONE_NAT.
                { # A Compute Engine NetworkInterface resource. Identical to the NetworkInterface on the corresponding Compute Engine resource.
                  "accessConfigs": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services.
                    { # A Compute Engine network accessConfig. Identical to the accessConfig on corresponding Compute Engine resource.
                      "type": "A String", # Type of this access configuration file. Currently only ONE_TO_ONE_NAT is supported.
                      "name": "A String", # Name of this access configuration.
                      "natIp": "A String", # An external IP address associated with this instance.
                    },
                  ],
                  "networkIp": "A String", # An optional IPV4 internal network address to assign to the instance for this network interface.
                  "network": "A String", # Name the Network resource to which this interface applies.
                },
              ],
              "metadata": { # A Compute Engine metadata entry. Identical to the metadata on the corresponding Compute Engine resource. # The metadata key/value pairs assigned to this instance.
                "items": [ # A list of metadata items.
                  { # A Compute Engine metadata item, defined as a key:value pair. Identical to the metadata on the corresponding Compute Engine resource.
                    "value": "A String", # A metadata value.
                    "key": "A String", # A metadata key.
                  },
                ],
                "fingerPrint": "A String", # The fingerprint of the metadata. Required for updating the metadata entries for this instance.
              },
            },
          },
          "healthChecks": [ # Deprecated. Please use template[].healthChecks instead.
            {
              "description": "A String", # The description for this health check.
              "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
              "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
              "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
              "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
              "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
              "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
              "port": 42, # The TCP port for the health check requests.
              "name": "A String", # The name of this health check.
            },
          ],
          "currentNumReplicas": 42, # [Output Only] The current number of replicas in the pool.
          "initialNumReplicas": 42, # The initial number of replicas this pool should have. You must provide a value greater than or equal to 0.
          "type": "A String", # Deprecated! Do not set.
          "targetPools": [ # A list of target pools to update with the replicas that are managed by this pool. If specified, the replicas in this replica pool will be added to the specified target pools for load balancing purposes. The replica pool must live in the same region as the specified target pools. These values must be the target pool resource names, and not fully qualified URLs.
            "A String",
          ],
          "selfLink": "A String", # [Output Only] A self-link to the replica pool.
          "name": "A String", # The name of the replica pool. Must follow the regex [a-z]([-a-z0-9]*[a-z0-9])? and be 1-28 characters long.
        },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="resize">resize(projectName, zone, poolName, numReplicas=None)</code>
  <pre>Resize a pool. This is an asynchronous operation, and multiple overlapping resize requests can be made. Replica Pools will use the information from the last resize request.

Args:
  projectName: string, The project ID for this replica pool. (required)
  zone: string, The zone for this replica pool. (required)
  poolName: string, The name of the replica pool for this request. (required)
  numReplicas: integer, The desired number of replicas to resize to. If this number is larger than the existing number of replicas, new replicas will be added. If the number is smaller, then existing replicas will be deleted.

Returns:
  An object of the form:

    {
      "autoRestart": True or False, # Whether replicas in this pool should be restarted if they experience a failure. The default value is true.
      "resourceViews": [ # The list of resource views that should be updated with all the replicas that are managed by this pool.
        "A String",
      ],
      "description": "A String", # An optional description of the replica pool.
      "labels": [ # A list of labels to attach to this replica pool and all created virtual machines in this replica pool.
        { # A label to apply to this replica pool.
          "value": "A String", # The value of this label.
          "key": "A String", # The key for this label.
        },
      ],
      "targetPool": "A String", # Deprecated, please use target_pools instead.
      "baseInstanceName": "A String", # The base instance name to use for the replicas in this pool. This must match the regex [a-z]([-a-z0-9]*[a-z0-9])?. If specified, the instances in this replica pool will be named in the format <base-instance-name>-<ID>. The <ID> postfix will be a four character alphanumeric identifier generated by the service.
          #
          # If this is not specified by the user, a random base instance name is generated by the service.
      "numReplicas": 42, # Deprecated! Use initial_num_replicas instead.
      "template": { # The template used for creating replicas in the pool. # The template to use when creating replicas in this pool. This template is used during initial instance creation of the pool, when growing the pool in size, or when a replica restarts.
        "action": { # An action that gets executed during initialization of the replicas. # An action to run during initialization of your replicas. An action is run as shell commands which are executed one after the other in the same bash shell, so any state established by one command is inherited by later commands.
          "timeoutMilliSeconds": 42, # If an action's commands on a particular replica do not finish in the specified timeoutMilliSeconds, the replica is considered to be in a FAILING state. No efforts are made to stop any processes that were spawned or created as the result of running the action's commands. The default is the max allowed value, 1 hour (i.e. 3600000 milliseconds).
          "commands": [ # A list of commands to run, one per line. If any command fails, the whole action is considered a failure and no further actions are run. This also marks the virtual machine or replica as a failure.
            "A String",
          ],
          "envVariables": [ # A list of environment variables to use for the commands in this action.
            { # An environment variable to set for an action.
              "hidden": True or False, # Deprecated, do not use.
              "name": "A String", # The name of the environment variable.
              "value": "A String", # The value of the variable.
            },
          ],
        },
        "healthChecks": [ # A list of HTTP Health Checks to configure for this replica pool and all virtual machines in this replica pool.
          {
            "description": "A String", # The description for this health check.
            "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
            "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
            "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
            "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
            "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
            "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
            "port": 42, # The TCP port for the health check requests.
            "name": "A String", # The name of this health check.
          },
        ],
        "version": "A String", # A free-form string describing the version of this template. You can provide any versioning string you would like. For example, version1 or template-v1.
        "vmParams": { # Parameters for creating a Compute Engine Instance resource. Most fields are identical to the corresponding Compute Engine resource. # The virtual machine parameters to use for creating replicas. You can define settings such as the machine type and the image of replicas in this pool. This is required if replica type is SMART_VM.
          "disksToCreate": [ # A list of Disk resources to create and attach to each Replica in the Pool. Currently, you can only define one disk and it must be a root persistent disk. Note that Replica Pool will create a root persistent disk for each replica.
            { # A Persistent Disk resource that will be created and attached to each Replica in the Pool. Each Replica will have a unique persistent disk that is created and attached to that Replica in READ_WRITE mode.
              "initializeParams": { # Initialization parameters for creating a new disk. # Create the new disk using these parameters. The name of the disk will be <instance_name>-<four_random_charactersgt;.
                "diskSizeGb": "A String", # The size of the created disk in gigabytes.
                "sourceImage": "A String", # The name or fully-qualified URL of a source image to use to create this disk. If you provide a name of the source image, Replica Pool will look for an image with that name in your project. If you are specifying an image provided by Compute Engine, you will need to provide the full URL with the correct project, such as:
                    # http://www.googleapis.com/compute/v1/projects/debian-cloud/ global/images/debian-wheezy-7-vYYYYMMDD
                "diskType": "A String", # Name of the disk type resource describing which disk type to use to create the disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard'
              },
              "boot": True or False, # If true, indicates that this is the root persistent disk.
              "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
                "deviceName": "A String", # The device name of this disk.
                "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
              },
              "autoDelete": True or False, # If true, then this disk will be deleted when the instance is deleted. The default value is true.
            },
          ],
          "canIpForward": True or False, # Enables IP Forwarding, which allows this instance to receive packets destined for a different IP address, and send packets with a different source IP. See IP Forwarding for more information.
          "description": "A String", # An optional textual description of the instance.
          "tags": { # A Compute Engine Instance tag, identical to the tags on the corresponding Compute Engine Instance resource. # A list of tags to apply to the Google Compute Engine instance to identify resources.
            "items": [ # Items contained in this tag.
              "A String",
            ],
            "fingerPrint": "A String", # The fingerprint of the tag. Required for updating the list of tags.
          },
          "onHostMaintenance": "A String",
          "disksToAttach": [ # A list of existing Persistent Disk resources to attach to each replica in the pool. Each disk will be attached in read-only mode to every replica.
            { # A pre-existing persistent disk that will be attached to every Replica in the Pool in READ_ONLY mode.
              "source": "A String", # The name of the Persistent Disk resource. The Persistent Disk resource must be in the same zone as the Pool.
              "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
                "deviceName": "A String", # The device name of this disk.
                "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
              },
            },
          ],
          "machineType": "A String", # The machine type for this instance. The resource name (e.g. n1-standard-1).
          "baseInstanceName": "A String", # Deprecated. Please use baseInstanceName instead.
          "serviceAccounts": [ # A list of Service Accounts to enable for this instance.
            { # A Compute Engine service account, identical to the Compute Engine resource.
              "scopes": [ # The list of OAuth2 scopes to obtain for the service account, for example: https://www.googleapis.com/auth/devstorage.full_control
                "A String",
              ],
              "email": "A String", # The service account email address, for example: 123845678986@project.gserviceaccount.com
            },
          ],
          "networkInterfaces": [ # A list of network interfaces for the instance. Currently only one interface is supported by Google Compute Engine, ONE_TO_ONE_NAT.
            { # A Compute Engine NetworkInterface resource. Identical to the NetworkInterface on the corresponding Compute Engine resource.
              "accessConfigs": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services.
                { # A Compute Engine network accessConfig. Identical to the accessConfig on corresponding Compute Engine resource.
                  "type": "A String", # Type of this access configuration file. Currently only ONE_TO_ONE_NAT is supported.
                  "name": "A String", # Name of this access configuration.
                  "natIp": "A String", # An external IP address associated with this instance.
                },
              ],
              "networkIp": "A String", # An optional IPV4 internal network address to assign to the instance for this network interface.
              "network": "A String", # Name the Network resource to which this interface applies.
            },
          ],
          "metadata": { # A Compute Engine metadata entry. Identical to the metadata on the corresponding Compute Engine resource. # The metadata key/value pairs assigned to this instance.
            "items": [ # A list of metadata items.
              { # A Compute Engine metadata item, defined as a key:value pair. Identical to the metadata on the corresponding Compute Engine resource.
                "value": "A String", # A metadata value.
                "key": "A String", # A metadata key.
              },
            ],
            "fingerPrint": "A String", # The fingerprint of the metadata. Required for updating the metadata entries for this instance.
          },
        },
      },
      "healthChecks": [ # Deprecated. Please use template[].healthChecks instead.
        {
          "description": "A String", # The description for this health check.
          "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
          "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
          "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
          "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
          "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
          "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
          "port": 42, # The TCP port for the health check requests.
          "name": "A String", # The name of this health check.
        },
      ],
      "currentNumReplicas": 42, # [Output Only] The current number of replicas in the pool.
      "initialNumReplicas": 42, # The initial number of replicas this pool should have. You must provide a value greater than or equal to 0.
      "type": "A String", # Deprecated! Do not set.
      "targetPools": [ # A list of target pools to update with the replicas that are managed by this pool. If specified, the replicas in this replica pool will be added to the specified target pools for load balancing purposes. The replica pool must live in the same region as the specified target pools. These values must be the target pool resource names, and not fully qualified URLs.
        "A String",
      ],
      "selfLink": "A String", # [Output Only] A self-link to the replica pool.
      "name": "A String", # The name of the replica pool. Must follow the regex [a-z]([-a-z0-9]*[a-z0-9])? and be 1-28 characters long.
    }</pre>
</div>

<div class="method">
    <code class="details" id="updatetemplate">updatetemplate(projectName, zone, poolName, body)</code>
  <pre>Update the template used by the pool.

Args:
  projectName: string, The project ID for this replica pool. (required)
  zone: string, The zone for this replica pool. (required)
  poolName: string, The name of the replica pool for this request. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # The template used for creating replicas in the pool.
  "action": { # An action that gets executed during initialization of the replicas. # An action to run during initialization of your replicas. An action is run as shell commands which are executed one after the other in the same bash shell, so any state established by one command is inherited by later commands.
    "timeoutMilliSeconds": 42, # If an action's commands on a particular replica do not finish in the specified timeoutMilliSeconds, the replica is considered to be in a FAILING state. No efforts are made to stop any processes that were spawned or created as the result of running the action's commands. The default is the max allowed value, 1 hour (i.e. 3600000 milliseconds).
    "commands": [ # A list of commands to run, one per line. If any command fails, the whole action is considered a failure and no further actions are run. This also marks the virtual machine or replica as a failure.
      "A String",
    ],
    "envVariables": [ # A list of environment variables to use for the commands in this action.
      { # An environment variable to set for an action.
        "hidden": True or False, # Deprecated, do not use.
        "name": "A String", # The name of the environment variable.
        "value": "A String", # The value of the variable.
      },
    ],
  },
  "healthChecks": [ # A list of HTTP Health Checks to configure for this replica pool and all virtual machines in this replica pool.
    {
      "description": "A String", # The description for this health check.
      "timeoutSec": 42, # How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.
      "checkIntervalSec": 42, # How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.
      "unhealthyThreshold": 42, # The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.
      "healthyThreshold": 42, # The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.
      "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used.
      "path": "A String", # The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck.
      "port": 42, # The TCP port for the health check requests.
      "name": "A String", # The name of this health check.
    },
  ],
  "version": "A String", # A free-form string describing the version of this template. You can provide any versioning string you would like. For example, version1 or template-v1.
  "vmParams": { # Parameters for creating a Compute Engine Instance resource. Most fields are identical to the corresponding Compute Engine resource. # The virtual machine parameters to use for creating replicas. You can define settings such as the machine type and the image of replicas in this pool. This is required if replica type is SMART_VM.
    "disksToCreate": [ # A list of Disk resources to create and attach to each Replica in the Pool. Currently, you can only define one disk and it must be a root persistent disk. Note that Replica Pool will create a root persistent disk for each replica.
      { # A Persistent Disk resource that will be created and attached to each Replica in the Pool. Each Replica will have a unique persistent disk that is created and attached to that Replica in READ_WRITE mode.
        "initializeParams": { # Initialization parameters for creating a new disk. # Create the new disk using these parameters. The name of the disk will be <instance_name>-<four_random_charactersgt;.
          "diskSizeGb": "A String", # The size of the created disk in gigabytes.
          "sourceImage": "A String", # The name or fully-qualified URL of a source image to use to create this disk. If you provide a name of the source image, Replica Pool will look for an image with that name in your project. If you are specifying an image provided by Compute Engine, you will need to provide the full URL with the correct project, such as:
              # http://www.googleapis.com/compute/v1/projects/debian-cloud/ global/images/debian-wheezy-7-vYYYYMMDD
          "diskType": "A String", # Name of the disk type resource describing which disk type to use to create the disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard'
        },
        "boot": True or False, # If true, indicates that this is the root persistent disk.
        "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
          "deviceName": "A String", # The device name of this disk.
          "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
        },
        "autoDelete": True or False, # If true, then this disk will be deleted when the instance is deleted. The default value is true.
      },
    ],
    "canIpForward": True or False, # Enables IP Forwarding, which allows this instance to receive packets destined for a different IP address, and send packets with a different source IP. See IP Forwarding for more information.
    "description": "A String", # An optional textual description of the instance.
    "tags": { # A Compute Engine Instance tag, identical to the tags on the corresponding Compute Engine Instance resource. # A list of tags to apply to the Google Compute Engine instance to identify resources.
      "items": [ # Items contained in this tag.
        "A String",
      ],
      "fingerPrint": "A String", # The fingerprint of the tag. Required for updating the list of tags.
    },
    "onHostMaintenance": "A String",
    "disksToAttach": [ # A list of existing Persistent Disk resources to attach to each replica in the pool. Each disk will be attached in read-only mode to every replica.
      { # A pre-existing persistent disk that will be attached to every Replica in the Pool in READ_ONLY mode.
        "source": "A String", # The name of the Persistent Disk resource. The Persistent Disk resource must be in the same zone as the Pool.
        "attachment": { # Specifies how to attach a disk to a Replica. # How the disk will be attached to the Replica.
          "deviceName": "A String", # The device name of this disk.
          "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.
        },
      },
    ],
    "machineType": "A String", # The machine type for this instance. The resource name (e.g. n1-standard-1).
    "baseInstanceName": "A String", # Deprecated. Please use baseInstanceName instead.
    "serviceAccounts": [ # A list of Service Accounts to enable for this instance.
      { # A Compute Engine service account, identical to the Compute Engine resource.
        "scopes": [ # The list of OAuth2 scopes to obtain for the service account, for example: https://www.googleapis.com/auth/devstorage.full_control
          "A String",
        ],
        "email": "A String", # The service account email address, for example: 123845678986@project.gserviceaccount.com
      },
    ],
    "networkInterfaces": [ # A list of network interfaces for the instance. Currently only one interface is supported by Google Compute Engine, ONE_TO_ONE_NAT.
      { # A Compute Engine NetworkInterface resource. Identical to the NetworkInterface on the corresponding Compute Engine resource.
        "accessConfigs": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services.
          { # A Compute Engine network accessConfig. Identical to the accessConfig on corresponding Compute Engine resource.
            "type": "A String", # Type of this access configuration file. Currently only ONE_TO_ONE_NAT is supported.
            "name": "A String", # Name of this access configuration.
            "natIp": "A String", # An external IP address associated with this instance.
          },
        ],
        "networkIp": "A String", # An optional IPV4 internal network address to assign to the instance for this network interface.
        "network": "A String", # Name the Network resource to which this interface applies.
      },
    ],
    "metadata": { # A Compute Engine metadata entry. Identical to the metadata on the corresponding Compute Engine resource. # The metadata key/value pairs assigned to this instance.
      "items": [ # A list of metadata items.
        { # A Compute Engine metadata item, defined as a key:value pair. Identical to the metadata on the corresponding Compute Engine resource.
          "value": "A String", # A metadata value.
          "key": "A String", # A metadata key.
        },
      ],
      "fingerPrint": "A String", # The fingerprint of the metadata. Required for updating the metadata entries for this instance.
    },
  },
}

</pre>
</div>

</body></html>