docs: def list_appointment_groups(self, context_codes=None, include=None, include_past_appointments=None, scope=None):
          """
          List appointment groups.
  
          Retrieve the list of appointment groups that can be reserved or managed by
          the current user.
          """
          path = {}
          data = {}
          params = {}
  
          # OPTIONAL - scope
          """Defaults to "reservable""""
          if scope is not None:
              self._validate_enum(scope, ["reservable", "manageable"])
              params["scope"] = scope
  
          # OPTIONAL - context_codes
          """Array of context codes used to limit returned results."""
          if context_codes is not None:
              params["context_codes"] = context_codes
  
          # OPTIONAL - include_past_appointments
          """Defaults to false. If true, includes past appointment groups"""
          if include_past_appointments is not None:
              params["include_past_appointments"] = include_past_appointments
  
          # OPTIONAL - include
          """Array of additional information to include.
          
          "appointments":: calendar event time slots for this appointment group
          "child_events":: reservations of those time slots
          "participant_count":: number of reservations
          "reserved_times":: the event id, start time and end time of reservations
                             the current user has made)
          "all_context_codes":: all context codes associated with this appointment group"""
          if include is not None:
              self._validate_enum(include, ["appointments", "child_events", "participant_count", "reserved_times", "all_context_codes"])
              params["include"] = include
  
          self.logger.debug("GET /api/v1/appointment_groups with query params: {params} and form data: {data}".format(params=params, data=data, **path))
          return self.generic_request("GET", "/api/v1/appointment_groups".format(**path), data=data, params=params, no_data=True)