<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_v1beta4.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1beta4.flags.html">flags</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#list">list(databaseVersion=None, x__xgafv=None)</a></code></p>
<p class="firstline">List all available database flags for Cloud SQL instances.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(databaseVersion=None, x__xgafv=None)</code>
  <pre>List all available database flags for Cloud SQL instances.

Args:
  databaseVersion: string, Database type and version you want to retrieve flags for. By default, this method returns flags for all database types and versions.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Flags list response.
    &quot;items&quot;: [ # List of flags.
      { # A flag resource.
        &quot;appliesTo&quot;: [ # The database version this flag applies to. Can be *MYSQL_8_0*, *MYSQL_5_6*, or *MYSQL_5_7*.
          &quot;A String&quot;,
        ],
        &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#flag*.
        &quot;inBeta&quot;: True or False, # Whether or not the flag is considered in beta.
        &quot;allowedStringValues&quot;: [ # For *STRING* flags, a list of strings that the value can be set to.
          &quot;A String&quot;,
        ],
        &quot;name&quot;: &quot;A String&quot;, # This is the name of the flag. Flag names always use underscores, not hyphens, for example: *max_allowed_packet*
        &quot;requiresRestart&quot;: True or False, # Indicates whether changing this flag will trigger a database restart. Only applicable to Second Generation instances.
        &quot;minValue&quot;: &quot;A String&quot;, # For *INTEGER* flags, the minimum allowed value.
        &quot;maxValue&quot;: &quot;A String&quot;, # For *INTEGER* flags, the maximum allowed value.
        &quot;type&quot;: &quot;A String&quot;, # The type of the flag. Flags are typed to being *BOOLEAN*, *STRING*, *INTEGER* or *NONE*. *NONE* is used for flags which do not take a value, such as *skip_grant_tables*.
        &quot;allowedIntValues&quot;: [ # Use this field if only certain integers are accepted. Can be combined with min_value and max_value to add additional values.
          &quot;A String&quot;,
        ],
      },
    ],
    &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#flagsList*.
  }</pre>
</div>

</body></html>