<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> . <a href="classroom_v1.userProfiles.guardianInvitations.html">guardianInvitations</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#create">create(studentId, body, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a guardian invitation, and sends an email to the guardian asking them to confirm that they are the student's guardian. Once the guardian accepts the invitation, their `state` will change to `COMPLETED` and they will start receiving guardian notifications. A `Guardian` resource will also be created to represent the active guardian. The request object must have the `student_id` and `invited_email_address` fields set. Failing to set these fields, or setting any other fields in the request, will result in an error. This method returns the following error codes: * `PERMISSION_DENIED` if the current user does not have permission to manage guardians, if the guardian in question has already rejected too many requests for that student, if guardians are not enabled for the domain in question, or for other access errors. * `RESOURCE_EXHAUSTED` if the student or guardian has exceeded the guardian link limit. * `INVALID_ARGUMENT` if the guardian email address is not valid (for example, if it is too long), or if the format of the student ID provided cannot be recognized (it is not an email address, nor a `user_id` from this API). This error will also be returned if read-only fields are set, or if the `state` field is set to to a value other than `PENDING`. * `NOT_FOUND` if the student ID provided is a valid student ID, but Classroom has no record of that student. * `ALREADY_EXISTS` if there is already a pending guardian invitation for the student and `invited_email_address` provided, or if the provided `invited_email_address` matches the Google account of an existing `Guardian` for this user.</p>
<p class="toc_element">
  <code><a href="#get">get(studentId, invitationId, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a specific guardian invitation. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view guardian invitations for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). * `NOT_FOUND` if Classroom cannot find any record of the given student or `invitation_id`. May also be returned if the student exists, but the requesting user does not have access to see that student.</p>
<p class="toc_element">
  <code><a href="#list">list(studentId, invitedEmailAddress=None, pageSize=None, states=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a list of guardian invitations that the requesting user is permitted to view, filtered by the parameters provided. This method returns the following error codes: * `PERMISSION_DENIED` if a `student_id` is specified, and the requesting user is not permitted to view guardian invitations for that student, if `"-"` is specified as the `student_id` and the user is not a domain administrator, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). May also be returned if an invalid `page_token` or `state` is provided. * `NOT_FOUND` if a `student_id` is specified, and its format can be recognized, but Classroom has no record of that student.</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="#patch">patch(studentId, invitationId, body, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Modifies a guardian invitation. Currently, the only valid modification is to change the `state` from `PENDING` to `COMPLETE`. This has the effect of withdrawing the invitation. This method returns the following error codes: * `PERMISSION_DENIED` if the current user does not have permission to manage guardians, if guardians are not enabled for the domain in question or for other access errors. * `FAILED_PRECONDITION` if the guardian link is not in the `PENDING` state. * `INVALID_ARGUMENT` if the format of the student ID provided cannot be recognized (it is not an email address, nor a `user_id` from this API), or if the passed `GuardianInvitation` has a `state` other than `COMPLETE`, or if it modifies fields other than `state`. * `NOT_FOUND` if the student ID provided is a valid student ID, but Classroom has no record of that student, or if the `id` field does not refer to a guardian invitation known to Classroom.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="create">create(studentId, body, x__xgafv=None)</code>
  <pre>Creates a guardian invitation, and sends an email to the guardian asking them to confirm that they are the student's guardian. Once the guardian accepts the invitation, their `state` will change to `COMPLETED` and they will start receiving guardian notifications. A `Guardian` resource will also be created to represent the active guardian. The request object must have the `student_id` and `invited_email_address` fields set. Failing to set these fields, or setting any other fields in the request, will result in an error. This method returns the following error codes: * `PERMISSION_DENIED` if the current user does not have permission to manage guardians, if the guardian in question has already rejected too many requests for that student, if guardians are not enabled for the domain in question, or for other access errors. * `RESOURCE_EXHAUSTED` if the student or guardian has exceeded the guardian link limit. * `INVALID_ARGUMENT` if the guardian email address is not valid (for example, if it is too long), or if the format of the student ID provided cannot be recognized (it is not an email address, nor a `user_id` from this API). This error will also be returned if read-only fields are set, or if the `state` field is set to to a value other than `PENDING`. * `NOT_FOUND` if the student ID provided is a valid student ID, but Classroom has no record of that student. * `ALREADY_EXISTS` if there is already a pending guardian invitation for the student and `invited_email_address` provided, or if the provided `invited_email_address` matches the Google account of an existing `Guardian` for this user.

Args:
  studentId: string, ID of the student (in standard format) (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # An invitation to become the guardian of a specified user, sent to a specified email address.
    "invitationId": "A String", # Unique identifier for this invitation. Read-only.
    "studentId": "A String", # ID of the student (in standard format)
    "creationTime": "A String", # The time that this invitation was created. Read-only.
    "invitedEmailAddress": "A String", # Email address that the invitation was sent to. This field is only visible to domain administrators.
    "state": "A String", # The state that this invitation is in.
  }

  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    { # An invitation to become the guardian of a specified user, sent to a specified email address.
      "invitationId": "A String", # Unique identifier for this invitation. Read-only.
      "studentId": "A String", # ID of the student (in standard format)
      "creationTime": "A String", # The time that this invitation was created. Read-only.
      "invitedEmailAddress": "A String", # Email address that the invitation was sent to. This field is only visible to domain administrators.
      "state": "A String", # The state that this invitation is in.
    }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(studentId, invitationId, x__xgafv=None)</code>
  <pre>Returns a specific guardian invitation. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view guardian invitations for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). * `NOT_FOUND` if Classroom cannot find any record of the given student or `invitation_id`. May also be returned if the student exists, but the requesting user does not have access to see that student.

Args:
  studentId: string, The ID of the student whose guardian invitation is being requested. (required)
  invitationId: string, The `id` field of the `GuardianInvitation` being requested. (required)
  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    { # An invitation to become the guardian of a specified user, sent to a specified email address.
      "invitationId": "A String", # Unique identifier for this invitation. Read-only.
      "studentId": "A String", # ID of the student (in standard format)
      "creationTime": "A String", # The time that this invitation was created. Read-only.
      "invitedEmailAddress": "A String", # Email address that the invitation was sent to. This field is only visible to domain administrators.
      "state": "A String", # The state that this invitation is in.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(studentId, invitedEmailAddress=None, pageSize=None, states=None, pageToken=None, x__xgafv=None)</code>
  <pre>Returns a list of guardian invitations that the requesting user is permitted to view, filtered by the parameters provided. This method returns the following error codes: * `PERMISSION_DENIED` if a `student_id` is specified, and the requesting user is not permitted to view guardian invitations for that student, if `"-"` is specified as the `student_id` and the user is not a domain administrator, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). May also be returned if an invalid `page_token` or `state` is provided. * `NOT_FOUND` if a `student_id` is specified, and its format can be recognized, but Classroom has no record of that student.

Args:
  studentId: string, The ID of the student whose guardian invitations are to be returned. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal `"me"`, indicating the requesting user * the string literal `"-"`, indicating that results should be returned for all students that the requesting user is permitted to view guardian invitations. (required)
  invitedEmailAddress: string, If specified, only results with the specified `invited_email_address` will be returned.
  pageSize: integer, Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.
  states: string, If specified, only results with the specified `state` values will be returned. Otherwise, results with a `state` of `PENDING` will be returned. (repeated)
  pageToken: string, nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.
  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    { # Response when listing guardian invitations.
    "nextPageToken": "A String", # Token identifying the next page of results to return. If empty, no further results are available.
    "guardianInvitations": [ # Guardian invitations that matched the list request.
      { # An invitation to become the guardian of a specified user, sent to a specified email address.
          "invitationId": "A String", # Unique identifier for this invitation. Read-only.
          "studentId": "A String", # ID of the student (in standard format)
          "creationTime": "A String", # The time that this invitation was created. Read-only.
          "invitedEmailAddress": "A String", # Email address that the invitation was sent to. This field is only visible to domain administrators.
          "state": "A String", # The state that this invitation is in.
        },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(studentId, invitationId, body, updateMask=None, x__xgafv=None)</code>
  <pre>Modifies a guardian invitation. Currently, the only valid modification is to change the `state` from `PENDING` to `COMPLETE`. This has the effect of withdrawing the invitation. This method returns the following error codes: * `PERMISSION_DENIED` if the current user does not have permission to manage guardians, if guardians are not enabled for the domain in question or for other access errors. * `FAILED_PRECONDITION` if the guardian link is not in the `PENDING` state. * `INVALID_ARGUMENT` if the format of the student ID provided cannot be recognized (it is not an email address, nor a `user_id` from this API), or if the passed `GuardianInvitation` has a `state` other than `COMPLETE`, or if it modifies fields other than `state`. * `NOT_FOUND` if the student ID provided is a valid student ID, but Classroom has no record of that student, or if the `id` field does not refer to a guardian invitation known to Classroom.

Args:
  studentId: string, The ID of the student whose guardian invitation is to be modified. (required)
  invitationId: string, The `id` field of the `GuardianInvitation` to be modified. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # An invitation to become the guardian of a specified user, sent to a specified email address.
    "invitationId": "A String", # Unique identifier for this invitation. Read-only.
    "studentId": "A String", # ID of the student (in standard format)
    "creationTime": "A String", # The time that this invitation was created. Read-only.
    "invitedEmailAddress": "A String", # Email address that the invitation was sent to. This field is only visible to domain administrators.
    "state": "A String", # The state that this invitation is in.
  }

  updateMask: string, Mask that identifies which fields on the course to update. This field is required to do an update. The update will fail if invalid fields are specified. The following fields are valid: * `state` When set in a query parameter, this field should be specified as `updateMask=,,...`
  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    { # An invitation to become the guardian of a specified user, sent to a specified email address.
      "invitationId": "A String", # Unique identifier for this invitation. Read-only.
      "studentId": "A String", # ID of the student (in standard format)
      "creationTime": "A String", # The time that this invitation was created. Read-only.
      "invitedEmailAddress": "A String", # Email address that the invitation was sent to. This field is only visible to domain administrators.
      "state": "A String", # The state that this invitation is in.
    }</pre>
</div>

</body></html>