<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="classroom_v1.html">Google Classroom API</a> . <a href="classroom_v1.userProfiles.html">userProfiles</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="classroom_v1.userProfiles.guardianInvitations.html">guardianInvitations()</a></code>
</p>
<p class="firstline">Returns the guardianInvitations Resource.</p>

<p class="toc_element">
  <code><a href="classroom_v1.userProfiles.guardians.html">guardians()</a></code>
</p>
<p class="firstline">Returns the guardians Resource.</p>

<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="#get">get(userId, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a user profile. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access this user profile, if no profile exists with the requested ID, or for access errors.</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="get">get(userId, x__xgafv=None)</code>
  <pre>Returns a user profile. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access this user profile, if no profile exists with the requested ID, or for access errors.

Args:
  userId: string, Identifier of the profile to return. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal `&quot;me&quot;`, indicating the requesting user (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Global information for a user.
    &quot;verifiedTeacher&quot;: True or False, # Represents whether a G Suite for Education user&#x27;s domain administrator has explicitly verified them as being a teacher. If the user is not a member of a G Suite for Education domain, than this field is always false. Read-only
    &quot;emailAddress&quot;: &quot;A String&quot;, # Email address of the user. Read-only.
    &quot;photoUrl&quot;: &quot;A String&quot;, # URL of user&#x27;s profile photo. Read-only.
    &quot;permissions&quot;: [ # Global permissions of the user. Read-only.
      { # Global user permission description.
        &quot;permission&quot;: &quot;A String&quot;, # Permission value.
      },
    ],
    &quot;id&quot;: &quot;A String&quot;, # Identifier of the user. Read-only.
    &quot;name&quot;: { # Details of the user&#x27;s name. # Name of the user. Read-only.
      &quot;fullName&quot;: &quot;A String&quot;, # The user&#x27;s full name formed by concatenating the first and last name values. Read-only.
      &quot;familyName&quot;: &quot;A String&quot;, # The user&#x27;s last name. Read-only.
      &quot;givenName&quot;: &quot;A String&quot;, # The user&#x27;s first name. Read-only.
    },
  }</pre>
</div>

</body></html>