<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="manager_v1beta2.html">Deployment Manager API</a> . <a href="manager_v1beta2.deployments.html">deployments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(projectId, region, deploymentName)</a></code></p>
<p class="firstline"></p>
<p class="toc_element">
  <code><a href="#get">get(projectId, region, deploymentName)</a></code></p>
<p class="firstline"></p>
<p class="toc_element">
  <code><a href="#insert">insert(projectId, region, body)</a></code></p>
<p class="firstline"></p>
<p class="toc_element">
  <code><a href="#list">list(projectId, region, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline"></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>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(projectId, region, deploymentName)</code>
  <pre>

Args:
  projectId: string, A parameter (required)
  region: string, A parameter (required)
  deploymentName: string, A parameter (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(projectId, region, deploymentName)</code>
  <pre>

Args:
  projectId: string, A parameter (required)
  region: string, A parameter (required)
  deploymentName: string, A parameter (required)

Returns:
  An object of the form:

    { # A deployment represents a physical instantiation of a Template.
      "description": "A String", # A user-supplied description of this Deployment.
      "templateName": "A String", # The name of the Template on which this deployment is based.
      "overrides": [ # The set of parameter overrides to apply to the corresponding Template before deploying.
        { # A specification for overriding parameters in a Template that corresponds to the Deployment.
          "path": "A String", # A JSON Path expression that specifies which parameter should be overridden.
          "value": "A String", # The new value to assign to the overridden parameter.
        },
      ],
      "modules": { # [Output Only] List of status for the modules in this deployment.
        "a_key": { # [Output Only] Aggregate status for a module. # Name of the module.
          "healthCheckModuleStatus": { # [Output Only] The status of the HealthCheckModule, set for type HEALTH_CHECK.
            "healthCheckUrl": "A String", # [Output Only] The HealthCheck URL.
          },
          "replicaPoolModuleStatus": { # [Output Only] The status of the ReplicaPoolModule, set for type VM.
            "resourceViewUrl": "A String", # [Output Only] The URL of the Resource Group associated with this ReplicaPool.
            "replicaPoolUrl": "A String", # [Output Only] The URL of the associated ReplicaPool resource.
          },
          "networkModuleStatus": { # [Output Only] The status of the NetworkModule, set for type NETWORK.
            "networkUrl": "A String", # [Output Only] The URL of the corresponding Network resource.
          },
          "state": { # [Output Only] The current state of a replica or module. # [Output Only] The current state of the module.
            "status": "A String", # [Output Only] The status of the deployment. Possible values include:
                # - UNKNOWN
                # - DEPLOYING
                # - DEPLOYED
                # - DEPLOYMENT_FAILED
                # - DELETING
                # - DELETED
                # - DELETE_FAILED
            "details": "A String", # [Output Only] Human readable details about the current state.
          },
          "autoscalingModuleStatus": { # [Output Only] The status of the AutoscalingModule, set for type AUTOSCALING.
            "autoscalingConfigUrl": "A String", # [Output Only] The URL of the corresponding Autoscaling configuration.
          },
          "firewallModuleStatus": { # [Output Only] The status of the FirewallModule, set for type FIREWALL.
            "firewallUrl": "A String", # [Output Only] The URL of the corresponding Firewall resource.
          },
          "type": "A String", # [Output Only] The type of the module.
          "lbModuleStatus": { # [Output Only] The status of the LbModule, set for type LOAD_BALANCING.
            "forwardingRuleUrl": "A String", # [Output Only] The URL of the corresponding ForwardingRule in GCE.
            "targetPoolUrl": "A String", # [Output Only] The URL of the corresponding TargetPool resource in GCE.
          },
        },
      },
      "state": { # [Output Only] The current state of a replica or module. # [Output Only] Current status of this deployment.
        "status": "A String", # [Output Only] The status of the deployment. Possible values include:
            # - UNKNOWN
            # - DEPLOYING
            # - DEPLOYED
            # - DEPLOYMENT_FAILED
            # - DELETING
            # - DELETED
            # - DELETE_FAILED
        "details": "A String", # [Output Only] Human readable details about the current state.
      },
      "creationDate": "A String", # [Output Only] The time when this deployment was created.
      "name": "A String", # Name of this deployment. The name must conform to the following regular expression: [a-zA-Z0-9-_]{1,64}
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(projectId, region, body)</code>
  <pre>

Args:
  projectId: string, A parameter (required)
  region: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A deployment represents a physical instantiation of a Template.
    "description": "A String", # A user-supplied description of this Deployment.
    "templateName": "A String", # The name of the Template on which this deployment is based.
    "overrides": [ # The set of parameter overrides to apply to the corresponding Template before deploying.
      { # A specification for overriding parameters in a Template that corresponds to the Deployment.
        "path": "A String", # A JSON Path expression that specifies which parameter should be overridden.
        "value": "A String", # The new value to assign to the overridden parameter.
      },
    ],
    "modules": { # [Output Only] List of status for the modules in this deployment.
      "a_key": { # [Output Only] Aggregate status for a module. # Name of the module.
        "healthCheckModuleStatus": { # [Output Only] The status of the HealthCheckModule, set for type HEALTH_CHECK.
          "healthCheckUrl": "A String", # [Output Only] The HealthCheck URL.
        },
        "replicaPoolModuleStatus": { # [Output Only] The status of the ReplicaPoolModule, set for type VM.
          "resourceViewUrl": "A String", # [Output Only] The URL of the Resource Group associated with this ReplicaPool.
          "replicaPoolUrl": "A String", # [Output Only] The URL of the associated ReplicaPool resource.
        },
        "networkModuleStatus": { # [Output Only] The status of the NetworkModule, set for type NETWORK.
          "networkUrl": "A String", # [Output Only] The URL of the corresponding Network resource.
        },
        "state": { # [Output Only] The current state of a replica or module. # [Output Only] The current state of the module.
          "status": "A String", # [Output Only] The status of the deployment. Possible values include:
              # - UNKNOWN
              # - DEPLOYING
              # - DEPLOYED
              # - DEPLOYMENT_FAILED
              # - DELETING
              # - DELETED
              # - DELETE_FAILED
          "details": "A String", # [Output Only] Human readable details about the current state.
        },
        "autoscalingModuleStatus": { # [Output Only] The status of the AutoscalingModule, set for type AUTOSCALING.
          "autoscalingConfigUrl": "A String", # [Output Only] The URL of the corresponding Autoscaling configuration.
        },
        "firewallModuleStatus": { # [Output Only] The status of the FirewallModule, set for type FIREWALL.
          "firewallUrl": "A String", # [Output Only] The URL of the corresponding Firewall resource.
        },
        "type": "A String", # [Output Only] The type of the module.
        "lbModuleStatus": { # [Output Only] The status of the LbModule, set for type LOAD_BALANCING.
          "forwardingRuleUrl": "A String", # [Output Only] The URL of the corresponding ForwardingRule in GCE.
          "targetPoolUrl": "A String", # [Output Only] The URL of the corresponding TargetPool resource in GCE.
        },
      },
    },
    "state": { # [Output Only] The current state of a replica or module. # [Output Only] Current status of this deployment.
      "status": "A String", # [Output Only] The status of the deployment. Possible values include:
          # - UNKNOWN
          # - DEPLOYING
          # - DEPLOYED
          # - DEPLOYMENT_FAILED
          # - DELETING
          # - DELETED
          # - DELETE_FAILED
      "details": "A String", # [Output Only] Human readable details about the current state.
    },
    "creationDate": "A String", # [Output Only] The time when this deployment was created.
    "name": "A String", # Name of this deployment. The name must conform to the following regular expression: [a-zA-Z0-9-_]{1,64}
  }


Returns:
  An object of the form:

    { # A deployment represents a physical instantiation of a Template.
      "description": "A String", # A user-supplied description of this Deployment.
      "templateName": "A String", # The name of the Template on which this deployment is based.
      "overrides": [ # The set of parameter overrides to apply to the corresponding Template before deploying.
        { # A specification for overriding parameters in a Template that corresponds to the Deployment.
          "path": "A String", # A JSON Path expression that specifies which parameter should be overridden.
          "value": "A String", # The new value to assign to the overridden parameter.
        },
      ],
      "modules": { # [Output Only] List of status for the modules in this deployment.
        "a_key": { # [Output Only] Aggregate status for a module. # Name of the module.
          "healthCheckModuleStatus": { # [Output Only] The status of the HealthCheckModule, set for type HEALTH_CHECK.
            "healthCheckUrl": "A String", # [Output Only] The HealthCheck URL.
          },
          "replicaPoolModuleStatus": { # [Output Only] The status of the ReplicaPoolModule, set for type VM.
            "resourceViewUrl": "A String", # [Output Only] The URL of the Resource Group associated with this ReplicaPool.
            "replicaPoolUrl": "A String", # [Output Only] The URL of the associated ReplicaPool resource.
          },
          "networkModuleStatus": { # [Output Only] The status of the NetworkModule, set for type NETWORK.
            "networkUrl": "A String", # [Output Only] The URL of the corresponding Network resource.
          },
          "state": { # [Output Only] The current state of a replica or module. # [Output Only] The current state of the module.
            "status": "A String", # [Output Only] The status of the deployment. Possible values include:
                # - UNKNOWN
                # - DEPLOYING
                # - DEPLOYED
                # - DEPLOYMENT_FAILED
                # - DELETING
                # - DELETED
                # - DELETE_FAILED
            "details": "A String", # [Output Only] Human readable details about the current state.
          },
          "autoscalingModuleStatus": { # [Output Only] The status of the AutoscalingModule, set for type AUTOSCALING.
            "autoscalingConfigUrl": "A String", # [Output Only] The URL of the corresponding Autoscaling configuration.
          },
          "firewallModuleStatus": { # [Output Only] The status of the FirewallModule, set for type FIREWALL.
            "firewallUrl": "A String", # [Output Only] The URL of the corresponding Firewall resource.
          },
          "type": "A String", # [Output Only] The type of the module.
          "lbModuleStatus": { # [Output Only] The status of the LbModule, set for type LOAD_BALANCING.
            "forwardingRuleUrl": "A String", # [Output Only] The URL of the corresponding ForwardingRule in GCE.
            "targetPoolUrl": "A String", # [Output Only] The URL of the corresponding TargetPool resource in GCE.
          },
        },
      },
      "state": { # [Output Only] The current state of a replica or module. # [Output Only] Current status of this deployment.
        "status": "A String", # [Output Only] The status of the deployment. Possible values include:
            # - UNKNOWN
            # - DEPLOYING
            # - DEPLOYED
            # - DEPLOYMENT_FAILED
            # - DELETING
            # - DELETED
            # - DELETE_FAILED
        "details": "A String", # [Output Only] Human readable details about the current state.
      },
      "creationDate": "A String", # [Output Only] The time when this deployment was created.
      "name": "A String", # Name of this deployment. The name must conform to the following regular expression: [a-zA-Z0-9-_]{1,64}
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(projectId, region, pageToken=None, maxResults=None)</code>
  <pre>

Args:
  projectId: string, A parameter (required)
  region: string, A parameter (required)
  pageToken: string, Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a 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": [
      { # A deployment represents a physical instantiation of a Template.
          "description": "A String", # A user-supplied description of this Deployment.
          "templateName": "A String", # The name of the Template on which this deployment is based.
          "overrides": [ # The set of parameter overrides to apply to the corresponding Template before deploying.
            { # A specification for overriding parameters in a Template that corresponds to the Deployment.
              "path": "A String", # A JSON Path expression that specifies which parameter should be overridden.
              "value": "A String", # The new value to assign to the overridden parameter.
            },
          ],
          "modules": { # [Output Only] List of status for the modules in this deployment.
            "a_key": { # [Output Only] Aggregate status for a module. # Name of the module.
              "healthCheckModuleStatus": { # [Output Only] The status of the HealthCheckModule, set for type HEALTH_CHECK.
                "healthCheckUrl": "A String", # [Output Only] The HealthCheck URL.
              },
              "replicaPoolModuleStatus": { # [Output Only] The status of the ReplicaPoolModule, set for type VM.
                "resourceViewUrl": "A String", # [Output Only] The URL of the Resource Group associated with this ReplicaPool.
                "replicaPoolUrl": "A String", # [Output Only] The URL of the associated ReplicaPool resource.
              },
              "networkModuleStatus": { # [Output Only] The status of the NetworkModule, set for type NETWORK.
                "networkUrl": "A String", # [Output Only] The URL of the corresponding Network resource.
              },
              "state": { # [Output Only] The current state of a replica or module. # [Output Only] The current state of the module.
                "status": "A String", # [Output Only] The status of the deployment. Possible values include:
                    # - UNKNOWN
                    # - DEPLOYING
                    # - DEPLOYED
                    # - DEPLOYMENT_FAILED
                    # - DELETING
                    # - DELETED
                    # - DELETE_FAILED
                "details": "A String", # [Output Only] Human readable details about the current state.
              },
              "autoscalingModuleStatus": { # [Output Only] The status of the AutoscalingModule, set for type AUTOSCALING.
                "autoscalingConfigUrl": "A String", # [Output Only] The URL of the corresponding Autoscaling configuration.
              },
              "firewallModuleStatus": { # [Output Only] The status of the FirewallModule, set for type FIREWALL.
                "firewallUrl": "A String", # [Output Only] The URL of the corresponding Firewall resource.
              },
              "type": "A String", # [Output Only] The type of the module.
              "lbModuleStatus": { # [Output Only] The status of the LbModule, set for type LOAD_BALANCING.
                "forwardingRuleUrl": "A String", # [Output Only] The URL of the corresponding ForwardingRule in GCE.
                "targetPoolUrl": "A String", # [Output Only] The URL of the corresponding TargetPool resource in GCE.
              },
            },
          },
          "state": { # [Output Only] The current state of a replica or module. # [Output Only] Current status of this deployment.
            "status": "A String", # [Output Only] The status of the deployment. Possible values include:
                # - UNKNOWN
                # - DEPLOYING
                # - DEPLOYED
                # - DEPLOYMENT_FAILED
                # - DELETING
                # - DELETED
                # - DELETE_FAILED
            "details": "A String", # [Output Only] Human readable details about the current state.
          },
          "creationDate": "A String", # [Output Only] The time when this deployment was created.
          "name": "A String", # Name of this deployment. The name must conform to the following regular expression: [a-zA-Z0-9-_]{1,64}
        },
    ],
  }</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>

</body></html>