# Google Classroom API . courses . teachers

## Instance Methods

Creates a teacher of a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create teachers in this course or for access errors. * `NOT_FOUND` if the requested course ID does not exist. * `FAILED_PRECONDITION` if the requested user's account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * CourseTeacherLimitReached * UserGroupsMembershipLimitReached * `ALREADY_EXISTS` if the user is already a teacher or student in the course.

Deletes a teacher of a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to delete teachers of this course or for access errors. * `NOT_FOUND` if no teacher of this course has the requested ID or if the course does not exist. * `FAILED_PRECONDITION` if the requested ID belongs to the primary teacher of this course.

Returns a teacher of a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view teachers of this course or for access errors. * `NOT_FOUND` if no teacher of this course has the requested ID or if the course does not exist.

Returns a list of teachers of this course that the requester is permitted to view. This method returns the following error codes: * `NOT_FOUND` if the course does not exist. * `PERMISSION_DENIED` for access errors.

Retrieves the next page of results.

### Method Details

`create(courseId, body, x__xgafv=None)`

    Creates a teacher of a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create teachers in this course or for access errors. * `NOT_FOUND` if the requested course ID does not exist. * `FAILED_PRECONDITION` if the requested user's account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * CourseTeacherLimitReached * UserGroupsMembershipLimitReached * `ALREADY_EXISTS` if the user is already a teacher or student in the course.

    Args:
      courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # Teacher of a course.
        "courseId": "A String", # Identifier of the course. Read-only.
        "profile": { # Global information for a user. # Global user information for the teacher. Read-only.
          "permissions": [ # Global permissions of the user. Read-only.
            { # Global user permission description.
              "permission": "A String", # Permission value.
            },
          ],
          "photoUrl": "A String", # URL of user's profile photo. Read-only.
          "emailAddress": "A String", # Email address of the user. Read-only.
          "id": "A String", # Identifier of the user. Read-only.
          "name": { # Details of the user's name. # Name of the user. Read-only.
            "fullName": "A String", # The user's full name formed by concatenating the first and last name values. Read-only.
            "givenName": "A String", # The user's first name. Read-only.
            "familyName": "A String", # The user's last name. Read-only.
          },
        },
        "userId": "A String", # Identifier of the user. When specified as a parameter of a request, this 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
      }

      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # Teacher of a course.
          "courseId": "A String", # Identifier of the course. Read-only.
          "profile": { # Global information for a user. # Global user information for the teacher. Read-only.
            "permissions": [ # Global permissions of the user. Read-only.
              { # Global user permission description.
                "permission": "A String", # Permission value.
              },
            ],
            "photoUrl": "A String", # URL of user's profile photo. Read-only.
            "emailAddress": "A String", # Email address of the user. Read-only.
            "id": "A String", # Identifier of the user. Read-only.
            "name": { # Details of the user's name. # Name of the user. Read-only.
              "fullName": "A String", # The user's full name formed by concatenating the first and last name values. Read-only.
              "givenName": "A String", # The user's first name. Read-only.
              "familyName": "A String", # The user's last name. Read-only.
            },
          },
          "userId": "A String", # Identifier of the user. When specified as a parameter of a request, this 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
        }

`delete(courseId, userId, x__xgafv=None)`

    Deletes a teacher of a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to delete teachers of this course or for access errors. * `NOT_FOUND` if no teacher of this course has the requested ID or if the course does not exist. * `FAILED_PRECONDITION` if the requested ID belongs to the primary teacher of this course.

    Args:
      courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
      userId: string, Identifier of the teacher to delete. 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 (required)
      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
      }

`get(courseId, userId, x__xgafv=None)`

    Returns a teacher of a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view teachers of this course or for access errors. * `NOT_FOUND` if no teacher of this course has the requested ID or if the course does not exist.

    Args:
      courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
      userId: string, Identifier of the teacher 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 `"me"`, indicating the requesting user (required)
      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # Teacher of a course.
          "courseId": "A String", # Identifier of the course. Read-only.
          "profile": { # Global information for a user. # Global user information for the teacher. Read-only.
            "permissions": [ # Global permissions of the user. Read-only.
              { # Global user permission description.
                "permission": "A String", # Permission value.
              },
            ],
            "photoUrl": "A String", # URL of user's profile photo. Read-only.
            "emailAddress": "A String", # Email address of the user. Read-only.
            "id": "A String", # Identifier of the user. Read-only.
            "name": { # Details of the user's name. # Name of the user. Read-only.
              "fullName": "A String", # The user's full name formed by concatenating the first and last name values. Read-only.
              "givenName": "A String", # The user's first name. Read-only.
              "familyName": "A String", # The user's last name. Read-only.
            },
          },
          "userId": "A String", # Identifier of the user. When specified as a parameter of a request, this 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
        }

`list(courseId, pageSize=None, x__xgafv=None, pageToken=None)`

    Returns a list of teachers of this course that the requester is permitted to view. This method returns the following error codes: * `NOT_FOUND` if the course does not exist. * `PERMISSION_DENIED` for access errors.

    Args:
      courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
      pageSize: integer, Maximum number of items to return. Zero means no maximum. The server may return fewer than the specified number of results.
      x__xgafv: string, V1 error format.
      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.

    Returns:
      An object of the form:

        { # Response when listing teachers.
        "nextPageToken": "A String", # Token identifying the next page of results to return. If empty, no further results are available.
        "teachers": [ # Teachers who match the list request.
          { # Teacher of a course.
              "courseId": "A String", # Identifier of the course. Read-only.
              "profile": { # Global information for a user. # Global user information for the teacher. Read-only.
                "permissions": [ # Global permissions of the user. Read-only.
                  { # Global user permission description.
                    "permission": "A String", # Permission value.
                  },
                ],
                "photoUrl": "A String", # URL of user's profile photo. Read-only.
                "emailAddress": "A String", # Email address of the user. Read-only.
                "id": "A String", # Identifier of the user. Read-only.
                "name": { # Details of the user's name. # Name of the user. Read-only.
                  "fullName": "A String", # The user's full name formed by concatenating the first and last name values. Read-only.
                  "givenName": "A String", # The user's first name. Read-only.
                  "familyName": "A String", # The user's last name. Read-only.
                },
              },
              "userId": "A String", # Identifier of the user. When specified as a parameter of a request, this 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
            },
        ],
      }

`list_next(previous_request, previous_response)`

    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.