# Google Classroom API . registrations

## Instance Methods

Creates a `Registration`, causing Classroom to start sending notifications

Deletes a `Registration`, causing Classroom to stop sending notifications

### Method Details

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

    Creates a `Registration`, causing Classroom to start sending notifications
    from the provided `feed` to the destination provided in `cloudPubSubTopic`.

    Returns the created `Registration`. Currently, this will be the same as
    the argument, but with server-assigned fields such as `expiry_time` and
    `id` filled in.

    Note that any value specified for the `expiry_time` or `id` fields will be
    ignored.

    While Classroom may validate the `cloudPubSubTopic` and return errors on a
    best effort basis, it is the caller's responsibility to ensure that it
    exists and that Classroom has permission to publish to it.

    This method may return the following error codes:

    * `PERMISSION_DENIED` if:
        * the authenticated user does not have permission to receive
          notifications from the requested field; or
        * the current user has not granted access to the current Cloud project
          with the appropriate scope for the requested feed. Note that
          domain-wide delegation of authority is not currently supported for
          this purpose. If the request has the appropriate scope, but no grant
          exists, a Request Errors is returned.
        * another access error is encountered.
    * `INVALID_ARGUMENT` if:
        * no `cloudPubsubTopic` is specified, or the specified
          `cloudPubsubTopic` is not valid; or
        * no `feed` is specified, or the specified `feed` is not valid.
    * `NOT_FOUND` if:
        * the specified `feed` cannot be located, or the requesting user does
          not have permission to determine whether or not it exists; or
        * the specified `cloudPubsubTopic` cannot be located, or Classroom has
          not been granted permission to publish to it.

    Args:
      body: object, The request body.
        The object takes the form of:

    { # An instruction to Classroom to send notifications from the `feed` to the
          # provided destination.
        "cloudPubsubTopic": { # A reference to a Cloud Pub/Sub topic. # The Cloud Pub/Sub topic that notifications are to be sent to.
            #
            # To register for notifications, the owner of the topic must grant
            # `classroom-notifications@system.gserviceaccount.com` the
            #  `projects.topics.publish` permission.
          "topicName": "A String", # The `name` field of a Cloud Pub/Sub
              # [Topic](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#Topic).
        },
        "registrationId": "A String", # A server-generated unique identifier for this `Registration`.
            #
            # Read-only.
        "expiryTime": "A String", # The time until which the `Registration` is effective.
            #
            # This is a read-only field assigned by the server.
        "feed": { # A class of notifications that an application can register to receive. # Specification for the class of notifications that Classroom should deliver
            # to the destination.
            # For example: "all roster changes for a domain".
          "courseWorkChangesInfo": { # Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`. # Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`.
              # This field must be specified if `feed_type` is `COURSE_WORK_CHANGES`.
            "courseId": "A String", # The `course_id` of the course to subscribe to work changes for.
          },
          "feedType": "A String", # The type of feed.
          "courseRosterChangesInfo": { # Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`. # Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.
              # This field must be specified if `feed_type` is `COURSE_ROSTER_CHANGES`.
            "courseId": "A String", # The `course_id` of the course to subscribe to roster changes for.
          },
        },
      }

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

    Returns:
      An object of the form:

        { # An instruction to Classroom to send notifications from the `feed` to the
            # provided destination.
          "cloudPubsubTopic": { # A reference to a Cloud Pub/Sub topic. # The Cloud Pub/Sub topic that notifications are to be sent to.
              #
              # To register for notifications, the owner of the topic must grant
              # `classroom-notifications@system.gserviceaccount.com` the
              #  `projects.topics.publish` permission.
            "topicName": "A String", # The `name` field of a Cloud Pub/Sub
                # [Topic](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#Topic).
          },
          "registrationId": "A String", # A server-generated unique identifier for this `Registration`.
              #
              # Read-only.
          "expiryTime": "A String", # The time until which the `Registration` is effective.
              #
              # This is a read-only field assigned by the server.
          "feed": { # A class of notifications that an application can register to receive. # Specification for the class of notifications that Classroom should deliver
              # to the destination.
              # For example: "all roster changes for a domain".
            "courseWorkChangesInfo": { # Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`. # Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`.
                # This field must be specified if `feed_type` is `COURSE_WORK_CHANGES`.
              "courseId": "A String", # The `course_id` of the course to subscribe to work changes for.
            },
            "feedType": "A String", # The type of feed.
            "courseRosterChangesInfo": { # Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`. # Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.
                # This field must be specified if `feed_type` is `COURSE_ROSTER_CHANGES`.
              "courseId": "A String", # The `course_id` of the course to subscribe to roster changes for.
            },
          },
        }

`delete(registrationId, x__xgafv=None)`

    Deletes a `Registration`, causing Classroom to stop sending notifications
    for that `Registration`.

    Args:
      registrationId: string, The `registration_id` of the `Registration` to be deleted. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 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 `{}`.
      }