docs: def create_expansions(self, environment_id, collection_id, expansions,
                            **kwargs):
          """
          Create or update expansion list.
  
          Create or replace the Expansion list for this collection. The maximum number of
          expanded terms per collection is `500`.
          The current expansion list is replaced with the uploaded content.
  
          :param str environment_id: The ID of the environment.
          :param str collection_id: The ID of the collection.
          :param list[Expansion] expansions: An array of query expansion definitions.
           Each object in the **expansions** array represents a term or set of terms that
          will be expanded into other terms. Each expansion object can be configured as
          bidirectional or unidirectional. Bidirectional means that all terms are expanded
          to all other terms in the object. Unidirectional means that a set list of terms
          can be expanded into a second list of terms.
           To create a bi-directional expansion specify an **expanded_terms** array. When
          found in a query, all items in the **expanded_terms** array are then expanded to
          the other items in the same array.
           To create a uni-directional expansion, specify both an array of **input_terms**
          and an array of **expanded_terms**. When items in the **input_terms** array are
          present in a query, they are expanded using the items listed in the
          **expanded_terms** array.
          :param dict headers: A `dict` containing the request headers
          :return: A `DetailedResponse` containing the result, headers and HTTP status code.
          :rtype: DetailedResponse
          """
  
          if environment_id is None:
              raise ValueError('environment_id must be provided')
          if collection_id is None:
              raise ValueError('collection_id must be provided')
          if expansions is None:
              raise ValueError('expansions must be provided')
          expansions = [self._convert_model(x, Expansion) for x in expansions]
  
          headers = {}
          if 'headers' in kwargs:
              headers.update(kwargs.get('headers'))
          sdk_headers = get_sdk_headers('discovery', 'V1', 'create_expansions')
          headers.update(sdk_headers)
  
          params = {'version': self.version}
  
          data = {'expansions': expansions}
  
          url = '/v1/environments/{0}/collections/{1}/expansions'.format(
              *self._encode_path_vars(environment_id, collection_id))
          response = self.request(
              method='POST',
              url=url,
              headers=headers,
              params=params,
              json=data,
              accept_json=True)
          return response