<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="sqladmin_v1beta3.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta3.backupRuns.html">backupRuns</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(project, instance, backupConfiguration, dueTime)</a></code></p>
<p class="firstline">Retrieves information about a specified backup run for a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#list">list(project, instance, backupConfiguration, maxResults=None, pageToken=None)</a></code></p>
<p class="firstline">Lists all backup runs associated with a Cloud SQL instance.</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="get">get(project, instance, backupConfiguration, dueTime)</code>
  <pre>Retrieves information about a specified backup run for a Cloud SQL instance.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  backupConfiguration: string, Identifier for the backup configuration. This gets generated automatically when a backup configuration is created. (required)
  dueTime: string, The start time of the four-hour backup window. The backup can occur any time in the window. The time is in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. (required)

Returns:
  An object of the form:

    { # A database instance backup run resource.
    "status": "A String", # The status of this run.
    "kind": "sql#backupRun", # This is always sql#backupRun.
    "backupConfiguration": "A String", # Backup Configuration identifier.
    "instance": "A String", # Name of the database instance.
    "startTime": "A String", # The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation error. # Information about why the backup operation failed. This is only present if the run has the FAILED status.
      "kind": "sql#operationError", # This is always sql#operationError.
      "code": "A String", # Identifies the specific error that occurred.
    },
    "endTime": "A String", # The time the backup operation completed in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "enqueuedTime": "A String", # The time the run was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "dueTime": "A String", # The due time of this run in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(project, instance, backupConfiguration, maxResults=None, pageToken=None)</code>
  <pre>Lists all backup runs associated with a Cloud SQL instance.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  backupConfiguration: string, Identifier for the backup configuration. This gets generated automatically when a backup configuration is created. (required)
  maxResults: integer, Maximum number of backup runs per response.
  pageToken: string, A previously-returned page token representing part of the larger set of results to view.

Returns:
  An object of the form:

    { # Backup run list results.
    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
    "items": [ # A list of backup runs in reverse chronological order of the enqueued time.
      { # A database instance backup run resource.
        "status": "A String", # The status of this run.
        "kind": "sql#backupRun", # This is always sql#backupRun.
        "backupConfiguration": "A String", # Backup Configuration identifier.
        "instance": "A String", # Name of the database instance.
        "startTime": "A String", # The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "error": { # Database instance operation error. # Information about why the backup operation failed. This is only present if the run has the FAILED status.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
        },
        "endTime": "A String", # The time the backup operation completed in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "enqueuedTime": "A String", # The time the run was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "dueTime": "A String", # The due time of this run in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
      },
    ],
    "kind": "sql#backupRunsList", # This is always sql#backupRunsList.
  }</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>