<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="apigee_v1.html">Apigee API</a> . <a href="apigee_v1.organizations.html">organizations</a> . <a href="apigee_v1.organizations.sharedflows.html">sharedflows</a> . <a href="apigee_v1.organizations.sharedflows.revisions.html">revisions</a> . <a href="apigee_v1.organizations.sharedflows.revisions.deployments.html">deployments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(parent, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all deployments of a shared flow revision.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(parent, x__xgafv=None)</code>
  <pre>Lists all deployments of a shared flow revision.

Args:
  parent: string, Required. Name of the API proxy revision for which to return deployment information
in the following format:
  `organizations/{org}/sharedflows/{sharedflow}/revisions/{rev}`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;deployments&quot;: [ # List of deployments.
      {
        &quot;pods&quot;: [ # Status reported by runtime pods.
          {
            &quot;deploymentStatus&quot;: &quot;A String&quot;, # Status of the deployment. Valid values
                # include:
                # - `deployed`: Successful.
                # - `error` : Failed.
                # - `pending` : Pod has not yet reported on the deployment.
            &quot;podStatusTime&quot;: &quot;A String&quot;, # Time the pod status was reported in milliseconds since epoch.
            &quot;statusCodeDetails&quot;: &quot;A String&quot;, # Human-readable message associated with the status code.
            &quot;deploymentTime&quot;: &quot;A String&quot;, # Time the proxy was deployed in milliseconds since epoch.
            &quot;statusCode&quot;: &quot;A String&quot;, # Code associated with the deployment status.
            &quot;podStatus&quot;: &quot;A String&quot;, # Overall status of the pod (not this specific deployment). Valid values
                # include:
                # - `active`: Up to date.
                # - `stale` : Recently out of date.
                #
                # Pods that have not reported status in a
                # long time are excluded from the output.
            &quot;podName&quot;: &quot;A String&quot;, # Name of the pod which is reporting the status.
            &quot;appVersion&quot;: &quot;A String&quot;, # Version of the application running in the pod.
            &quot;deploymentStatusTime&quot;: &quot;A String&quot;, # Time the deployment status was reported in milliseconds since epoch.
          },
        ],
        &quot;environment&quot;: &quot;A String&quot;, # Environment.
        &quot;basePath&quot;: &quot;A String&quot;, # Base path for the deployment.
        &quot;deployStartTime&quot;: &quot;A String&quot;, # Time the API proxy was marked `deployed` in the control plane in
            # millisconds since epoch.
        &quot;apiProxy&quot;: &quot;A String&quot;, # API proxy.
        &quot;revision&quot;: &quot;A String&quot;, # API proxy revision.
      },
    ],
  }</pre>
</div>

</body></html>