<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="gamesConfiguration_v1configuration.html">Google Play Game Services Publishing API</a> . <a href="gamesConfiguration_v1configuration.leaderboardConfigurations.html">leaderboardConfigurations</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="#delete">delete(leaderboardId, x__xgafv=None)</a></code></p>
<p class="firstline">Delete the leaderboard configuration with the given ID.</p>
<p class="toc_element">
  <code><a href="#get">get(leaderboardId, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves the metadata of the leaderboard configuration with the given ID.</p>
<p class="toc_element">
  <code><a href="#insert">insert(applicationId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Insert a new leaderboard configuration in this application.</p>
<p class="toc_element">
  <code><a href="#list">list(applicationId, maxResults=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a list of the leaderboard configurations in this application.</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="#update">update(leaderboardId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Update the metadata of the leaderboard configuration with the given ID.</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="delete">delete(leaderboardId, x__xgafv=None)</code>
  <pre>Delete the leaderboard configuration with the given ID.

Args:
  leaderboardId: string, The ID of the leaderboard. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(leaderboardId, x__xgafv=None)</code>
  <pre>Retrieves the metadata of the leaderboard configuration with the given ID.

Args:
  leaderboardId: string, The ID of the leaderboard. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An leaderboard configuration resource.
  &quot;draft&quot;: { # A leaderboard configuration detail. # The draft data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID of the leaderboard.
  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfiguration`.
  &quot;published&quot;: { # A leaderboard configuration detail. # The read-only published data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;scoreMax&quot;: &quot;A String&quot;, # Maximum score that can be posted to this leaderboard.
  &quot;scoreMin&quot;: &quot;A String&quot;, # Minimum score that can be posted to this leaderboard.
  &quot;scoreOrder&quot;: &quot;A String&quot;,
  &quot;token&quot;: &quot;A String&quot;, # The token for this resource.
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(applicationId, body=None, x__xgafv=None)</code>
  <pre>Insert a new leaderboard configuration in this application.

Args:
  applicationId: string, The application ID from the Google Play developer console. (required)
  body: object, The request body.
    The object takes the form of:

{ # An leaderboard configuration resource.
  &quot;draft&quot;: { # A leaderboard configuration detail. # The draft data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID of the leaderboard.
  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfiguration`.
  &quot;published&quot;: { # A leaderboard configuration detail. # The read-only published data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;scoreMax&quot;: &quot;A String&quot;, # Maximum score that can be posted to this leaderboard.
  &quot;scoreMin&quot;: &quot;A String&quot;, # Minimum score that can be posted to this leaderboard.
  &quot;scoreOrder&quot;: &quot;A String&quot;,
  &quot;token&quot;: &quot;A String&quot;, # The token for this resource.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An leaderboard configuration resource.
  &quot;draft&quot;: { # A leaderboard configuration detail. # The draft data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID of the leaderboard.
  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfiguration`.
  &quot;published&quot;: { # A leaderboard configuration detail. # The read-only published data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;scoreMax&quot;: &quot;A String&quot;, # Maximum score that can be posted to this leaderboard.
  &quot;scoreMin&quot;: &quot;A String&quot;, # Minimum score that can be posted to this leaderboard.
  &quot;scoreOrder&quot;: &quot;A String&quot;,
  &quot;token&quot;: &quot;A String&quot;, # The token for this resource.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(applicationId, maxResults=None, pageToken=None, x__xgafv=None)</code>
  <pre>Returns a list of the leaderboard configurations in this application.

Args:
  applicationId: string, The application ID from the Google Play developer console. (required)
  maxResults: integer, The maximum number of resource configurations to return in the response, used for paging. For any response, the actual number of resources returned may be less than the specified `maxResults`.
  pageToken: string, The token returned by the previous request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A ListConfigurations response.
  &quot;items&quot;: [ # The leaderboard configurations.
    { # An leaderboard configuration resource.
      &quot;draft&quot;: { # A leaderboard configuration detail. # The draft data of the leaderboard.
        &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
        &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
        &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
          &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
          &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
          &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
          &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
            &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
          },
        },
        &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
      },
      &quot;id&quot;: &quot;A String&quot;, # The ID of the leaderboard.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfiguration`.
      &quot;published&quot;: { # A leaderboard configuration detail. # The read-only published data of the leaderboard.
        &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
        &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
        &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
          &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
          &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
          &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
          &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
            &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
            &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
              &quot;translations&quot;: [ # The locale strings.
                { # A localized string resource.
                  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
                  &quot;locale&quot;: &quot;A String&quot;, # The locale string.
                  &quot;value&quot;: &quot;A String&quot;, # The string value.
                },
              ],
            },
          },
        },
        &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
      },
      &quot;scoreMax&quot;: &quot;A String&quot;, # Maximum score that can be posted to this leaderboard.
      &quot;scoreMin&quot;: &quot;A String&quot;, # Minimum score that can be posted to this leaderboard.
      &quot;scoreOrder&quot;: &quot;A String&quot;,
      &quot;token&quot;: &quot;A String&quot;, # The token for this resource.
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationListResponse`.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The pagination token for the next page of results.
}</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 &#x27;execute()&#x27; 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="update">update(leaderboardId, body=None, x__xgafv=None)</code>
  <pre>Update the metadata of the leaderboard configuration with the given ID.

Args:
  leaderboardId: string, The ID of the leaderboard. (required)
  body: object, The request body.
    The object takes the form of:

{ # An leaderboard configuration resource.
  &quot;draft&quot;: { # A leaderboard configuration detail. # The draft data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID of the leaderboard.
  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfiguration`.
  &quot;published&quot;: { # A leaderboard configuration detail. # The read-only published data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;scoreMax&quot;: &quot;A String&quot;, # Maximum score that can be posted to this leaderboard.
  &quot;scoreMin&quot;: &quot;A String&quot;, # Minimum score that can be posted to this leaderboard.
  &quot;scoreOrder&quot;: &quot;A String&quot;,
  &quot;token&quot;: &quot;A String&quot;, # The token for this resource.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An leaderboard configuration resource.
  &quot;draft&quot;: { # A leaderboard configuration detail. # The draft data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID of the leaderboard.
  &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfiguration`.
  &quot;published&quot;: { # A leaderboard configuration detail. # The read-only published data of the leaderboard.
    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon url of this leaderboard. Writes to this field are ignored.
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.
    &quot;name&quot;: { # A localized string bundle resource. # Localized strings for the leaderboard name.
      &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
      &quot;translations&quot;: [ # The locale strings.
        { # A localized string resource.
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
          &quot;locale&quot;: &quot;A String&quot;, # The locale string.
          &quot;value&quot;: &quot;A String&quot;, # The string value.
        },
      ],
    },
    &quot;scoreFormat&quot;: { # A number format resource. # The score formatting for the leaderboard.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The curreny code string. Only used for CURRENCY format type.
      &quot;numDecimalPlaces&quot;: 42, # The number of decimal places for number. Only used for NUMERIC format type.
      &quot;numberFormatType&quot;: &quot;A String&quot;, # The formatting for the number.
      &quot;suffix&quot;: { # A number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.
        &quot;few&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;small&quot; numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;many&quot;: { # A localized string bundle resource. # When the language requires special treatment of &quot;large&quot; numbers (as with numbers ending 11-99 in Maltese).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;one&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;other&quot;: { # A localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;two&quot;: { # A localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
        &quot;zero&quot;: { # A localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
          &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.
          &quot;translations&quot;: [ # The locale strings.
            { # A localized string resource.
              &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.
              &quot;locale&quot;: &quot;A String&quot;, # The locale string.
              &quot;value&quot;: &quot;A String&quot;, # The string value.
            },
          ],
        },
      },
    },
    &quot;sortRank&quot;: 42, # The sort rank of this leaderboard. Writes to this field are ignored.
  },
  &quot;scoreMax&quot;: &quot;A String&quot;, # Maximum score that can be posted to this leaderboard.
  &quot;scoreMin&quot;: &quot;A String&quot;, # Minimum score that can be posted to this leaderboard.
  &quot;scoreOrder&quot;: &quot;A String&quot;,
  &quot;token&quot;: &quot;A String&quot;, # The token for this resource.
}</pre>
</div>

</body></html>